diff options
Diffstat (limited to 'configure')
-rw-r--r-- | configure | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/configure b/configure new file mode 100644 index 0000000..b2f4de5 --- /dev/null +++ b/configure @@ -0,0 +1,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 "$@" |