mirror of
https://github.com/yarrick/iodine.git
synced 2025-02-26 10:17:22 +00:00
tweak Makefiles to be noisier and use default rules and be more robust
- be less aggressive about suppressing printing of commands - invoke subcommands once and save results - to make commands shorter - to make it easy to see the actual values - to be robust against changes like "git commit" during a build - modularize CFLAGS vs CPPFLAGS - use default rules where possible
This commit is contained in:
parent
31bca0d578
commit
5fe92b1b08
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,3 +3,5 @@
|
||||
/src/base64u.c
|
||||
/src/base64u.h
|
||||
/tests/test
|
||||
/src/iodine
|
||||
/src/iodined
|
||||
|
2
Makefile
2
Makefile
@ -14,7 +14,7 @@ MKDIR_FLAGS=-p
|
||||
RM=rm
|
||||
RM_FLAGS=-f
|
||||
|
||||
TARGETOS = `uname`
|
||||
TARGETOS := $(shell uname)
|
||||
|
||||
all:
|
||||
@(cd src; $(MAKE) TARGETOS=$(TARGETOS) all)
|
||||
|
45
src/Makefile
45
src/Makefile
@ -4,45 +4,40 @@ CLIENT = ../bin/iodine
|
||||
SERVEROBJS = iodined.o user.o fw_query.o
|
||||
SERVER = ../bin/iodined
|
||||
|
||||
OS = `echo $(TARGETOS) | tr "a-z" "A-Z"`
|
||||
ARCH = `uname -m`
|
||||
HEAD_COMMIT = `git rev-parse --short HEAD`
|
||||
OS := $(shell echo $(TARGETOS) | tr "a-z" "A-Z")
|
||||
ARCH := $(shell uname -m)
|
||||
HEAD_COMMIT := $(shell git rev-parse --short HEAD)
|
||||
|
||||
LIBPATH = -L.
|
||||
LDFLAGS += -lz `sh osflags $(TARGETOS) link` $(LIBPATH)
|
||||
CFLAGS += -c -g -Wall -D$(OS) -pedantic `sh osflags $(TARGETOS) cflags` -DGITREVISION=\"$(HEAD_COMMIT)\"
|
||||
OS_CPPFLAGS := $(shell sh osflags $(TARGETOS) cppflags)
|
||||
OS_CFLAGS := $(shell sh osflags $(TARGETOS) cflags)
|
||||
OS_LDFLAGS := $(shell sh osflags $(TARGETOS) link)
|
||||
CPPFLAGS = -D$(OS) -DGITREVISION=\"$(HEAD_COMMIT)\" $(OS_CPPFLAGS)
|
||||
CFLAGS += -g -Wall -pedantic $(OS_CFLAGS)
|
||||
LDFLAGS += -lz $(OS_LDFLAGS) $(LIBPATH)
|
||||
|
||||
all: stateos $(CLIENT) $(SERVER)
|
||||
|
||||
stateos:
|
||||
@echo OS is $(OS), arch is $(ARCH)
|
||||
|
||||
$(CLIENT): $(COMMONOBJS) $(CLIENTOBJS)
|
||||
@echo LD $@
|
||||
@mkdir -p ../bin
|
||||
@$(CC) $(COMMONOBJS) $(CLIENTOBJS) -o $(CLIENT) $(LDFLAGS)
|
||||
|
||||
$(SERVER): $(COMMONOBJS) $(SERVEROBJS)
|
||||
@echo LD $@
|
||||
@mkdir -p ../bin
|
||||
@$(CC) $(COMMONOBJS) $(SERVEROBJS) -o $(SERVER) $(LDFLAGS)
|
||||
|
||||
.c.o:
|
||||
@echo CC $<
|
||||
@$(CC) $(CFLAGS) $< -o $@
|
||||
iodine: $(COMMONOBJS) $(CLIENTOBJS)
|
||||
iodined: $(COMMONOBJS) $(SERVEROBJS)
|
||||
$(CLIENT): iodine; mkdir -p ../bin && cp -a $< $@
|
||||
$(SERVER): iodined; mkdir -p ../bin && cp -a $< $@
|
||||
|
||||
base64u.o client.o iodined.o: base64u.h
|
||||
base64u.c: base64.c
|
||||
@echo Making $@
|
||||
@echo '/* No use in editing, produced by Makefile! */' > $@
|
||||
@sed -e 's/\([Bb][Aa][Ss][Ee]64\)/\1u/g ; s/0123456789+/0123456789_/' < base64.c >> $@
|
||||
echo '/* No use in editing, produced by Makefile! */' > $@
|
||||
sed -e 's/\([Bb][Aa][Ss][Ee]64\)/\1u/g ; s/0123456789+/0123456789_/' < base64.c >> $@
|
||||
base64u.h: base64.h
|
||||
@echo Making $@
|
||||
@echo '/* No use in editing, produced by Makefile! */' > $@
|
||||
@sed -e 's/\([Bb][Aa][Ss][Ee]64\)/\1u/g ; s/0123456789+/0123456789_/' < base64.h >> $@
|
||||
echo '/* No use in editing, produced by Makefile! */' > $@
|
||||
sed -e 's/\([Bb][Aa][Ss][Ee]64\)/\1u/g ; s/0123456789+/0123456789_/' < base64.h >> $@
|
||||
|
||||
clean:
|
||||
@echo "Cleaning src/"
|
||||
@rm -f $(CLIENT){,.exe} $(SERVER){,.exe} *~ *.o *.core base64u.*
|
||||
@rm -rf obj libs #android stuff
|
||||
|
||||
rm -f iodine iodined
|
||||
rm -f $(CLIENT){,.exe} $(SERVER){,.exe} *~ *.o *.core base64u.*
|
||||
rm -rf obj libs #android stuff
|
||||
|
@ -25,6 +25,8 @@ link)
|
||||
esac
|
||||
;;
|
||||
cflags)
|
||||
;;
|
||||
cppflags)
|
||||
case $1 in
|
||||
windows32)
|
||||
echo '-DWINVER=0x0501';
|
||||
|
Loading…
x
Reference in New Issue
Block a user