summaryrefslogtreecommitdiff
path: root/configure
blob: b2f4de5bd8e40f9e25d56726bcb9a585c6a7455c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91

set -o errexit

MF="$(dirname "$0")/Makefile"


printMakefileHdr () {
    printf '\n'
    if [ -n "$WINDOOF" -a "$WINDOOF" != "0" ]; then
        printf 'CC=x86_64-w64-mingw32-gcc\n'
        printf 'BINEXT=.exe\n'
    else
        printf 'CC=gcc\n'
        printf 'BINEXT=\n'
    fi
    if [ -n "$NDEBUG" -a "$NDEBUG" != "0" ]; then
        printf 'CFLAGS=-Wall -std=c99 -Werror -fmax-errors=3 -DPROJECT_VERSION=$(PROJECT_VERSION) -Os -DNDEBUG=1\n'
    else
        printf 'CFLAGS=-Wall -std=c99 -Werror -fmax-errors=3 -DPROJECT_VERSION=$(PROJECT_VERSION) -O0 -ggdb -g3\n'
    fi
    printf 'RIMRAF=rm -rf\n'
    printf 'MKDIR_P=mkdir -p\n'
    printf 'PROJECT_VERSION=$(git describe --tags|sed '\''s,^v,,'\'')\n'
    printf '\n'
    if test -z "$VERBOSE" -o "$VERBOSE" = "0"; then printf '.SILENT:\n'; fi
    printf '\n'
    printf 'INCDIRS=-Isrc/main/c/common\n'
    printf '\n'
    printf 'default: link\n'
}


printTarget_link () {
    printf '\n'
    printf 'link:\n'
    printf 'link: build/bin/pem-codec$(BINEXT)\n'
    printf 'link: build/bin/asn1-digger$(BINEXT)\n'
}


printTarget_clean () {
    printf '\n'
    printf '.PHONY: clean\n'
    printf 'clean:\n'
    printf '	$(RIMRAF) build\n'
}


printTarget_PemCodec () {
    printf '\n'
    printf 'build/bin/pem-codec$(BINEXT):\n'
    printf 'build/bin/pem-codec$(BINEXT): src/main/c/foo/PemCodec.c\n'
    printf '	@echo " LN   $@"\n'
    printf '	@$(MKDIR_P) build/bin\n'
    printf '	@$(CC) -o $@ $(CFLAGS) $^ $(INCDIRS)\n'
}


printTarget_Asn1Digger () {
    printf '\n'
    printf 'build/bin/asn1-digger$(BINEXT):\n'
    printf 'build/bin/asn1-digger$(BINEXT): src/main/c/foo/Asn1Digger.c\n'
    printf '	@echo " LN   $@"\n'
    printf '	@$(MKDIR_P) build/bin\n'
    printf '	@$(CC) -o $@ $(CFLAGS) $^ $(INCDIRS)\n'
}


printTarget_PcapOne () {
    printf '\n'
    printf 'build/bin/pcap-one$(BINEXT):\n'
    printf 'build/bin/pcap-one$(BINEXT): src/main/c/PcapOne/PcapOne.c\n'
    printf '	@echo " LN   $@"\n'
    printf '	@$(MKDIR_P) build/bin\n'
    printf '	@$(CC) -o $@ $(CFLAGS) $^ $(INCDIRS) -Wl,-Bstatic -lpcap -Wl,-Bdynamic\n'
}


main () {
    (
        printMakefileHdr
        printTarget_clean
        printTarget_link
        printTarget_PemCodec
        printTarget_Asn1Digger
        printTarget_PcapOne
    ) > "${MF:?}"
}


main "$@"