Mercurial > hg > nnchat
view Makefile.gen @ 665:23d16d9cdf96
Work on the build system, split generic UNIX things into Makefile.unix
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 12 Feb 2016 03:05:07 +0200 |
parents | ff94100cfc7c |
children | 32c13602c091 |
line wrap: on
line source
### ### Main makefile ### CFLAGS += -g -W -Wall -Wextra -DTH_NO_DEFAULTS -I. CFLAGS += -O2 CFLAGS += -std=c11 -pedantic -D_XOPEN_SOURCE=500 THLIBS=th-libs/ MKDIR ?= mkdir MKDIR_P ?= $(MKDIR) -p # # Version strings # NN_VERSION := $(shell cat VERSION) comma:= , NN_VERSION_COM := $(subst .,$(comma),$(NN_VERSION)) CFLAGS += -DNN_VERSION=\"$(NN_VERSION)\" # # Objects # THLIBS_A=$(OBJPATH)thlibs.a THLIBS_OBJ=th_util.o th_string.o th_args.o th_ioctx.o th_file.o th_config.o th_network.o NNCHAT_OBJ=main.o util.o ui.o NNCHAT_BIN=$(BINPATH)nnchat$(EXEEXT) TARGETS += $(NNCHAT_BIN) NOBUILD_TARGETS += $(OBJPATH) $(BINPATH) NOINST_TARGETS += $(THLIBS_A) # # Target rules # all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) $(OBJPATH): $(MKDIR_P) $@ $(BINPATH): $(MKDIR_P) $@ $(OBJPATH)%.o: $(THLIBS)%.c $(THLIBS)%.h $(CC) $(CFLAGS) -c -o $@ $< $(OBJPATH)%.o: %.c %.h $(CC) $(CFLAGS) -c -o $@ $< -I$(THLIBS) $(OBJPATH)%.o: %.c $(CC) $(CFLAGS) -c -o $@ $< -I$(THLIBS) $(THLIBS_A): $(addprefix $(OBJPATH),$(THLIBS_OBJ)) $(AR) cru $@ $(addprefix $(OBJPATH),$(THLIBS_OBJ)) $(RANLIB) $@ main.c: VERSION $(NNCHAT_BIN): $(addprefix $(OBJPATH),$(NNCHAT_OBJ)) $(THLIBS_A) $(EXTRAOBJS) $(CC) $(CFLAGS) -o $@ $+ $(LDFLAGS) # # Documentation # $(DOC): @wget -qO- http://www.tnsp.org/~ccr/nnchat/ | tr '\n' '§' | \ sed "s/<.-- BEGIN -->.*<.-- END -->//g;s/<script.*<\/script>//g" | tr '§' '\n' > "$@.tmp" @links -dump "$@.tmp" > $@ # # Special targets # clean: $(RM) $(TARGETS) $(NOINST_TARGETS) $(OBJPATH)*.o srcclean: clean $(RM) *~