mirror of
https://github.com/heiher/natmap.git
synced 2026-05-06 21:51:26 +08:00
80 lines
1.9 KiB
Makefile
80 lines
1.9 KiB
Makefile
# Makefile for natmap
|
|
|
|
PROJECT=natmap
|
|
|
|
CROSS_PREFIX :=
|
|
PP=$(CROSS_PREFIX)cpp
|
|
CC=$(CROSS_PREFIX)gcc
|
|
STRIP=$(CROSS_PREFIX)strip
|
|
CCFLAGS=-O3 -pipe -Wall -Werror $(CFLAGS) \
|
|
-I$(THIRDPARTDIR)/hev-task-system/include \
|
|
-I$(THIRDPARTDIR)/hev-task-system/src/lib/rbtree
|
|
LDFLAGS=-L$(THIRDPARTDIR)/hev-task-system/bin -lhev-task-system \
|
|
-lpthread
|
|
|
|
SRCDIR=src
|
|
BINDIR=bin
|
|
BUILDDIR=build
|
|
THIRDPARTDIR=third-part
|
|
|
|
TARGET=$(BINDIR)/natmap
|
|
THIRDPARTS=$(THIRDPARTDIR)/hev-task-system
|
|
|
|
-include build.mk
|
|
CCFLAGS+=$(VERSION_CFLAGS)
|
|
CCSRCS=$(filter %.c,$(SRCFILES))
|
|
ASSRCS=$(filter %.S,$(SRCFILES))
|
|
LDOBJS=$(patsubst $(SRCDIR)/%.c,$(BUILDDIR)/%.o,$(CCSRCS)) \
|
|
$(patsubst $(SRCDIR)/%.S,$(BUILDDIR)/%.o,$(ASSRCS))
|
|
DEPEND=$(LDOBJS:.o=.dep)
|
|
|
|
BUILDMSG="\e[1;31mBUILD\e[0m %s\n"
|
|
LINKMSG="\e[1;34mLINK\e[0m \e[1;32m%s\e[0m\n"
|
|
STRIPMSG="\e[1;34mSTRIP\e[0m \e[1;32m%s\e[0m\n"
|
|
CLEANMSG="\e[1;34mCLEAN\e[0m %s\n"
|
|
|
|
ENABLE_STATIC :=
|
|
ifeq ($(ENABLE_STATIC),1)
|
|
CCFLAGS+=-static
|
|
endif
|
|
|
|
V :=
|
|
ECHO_PREFIX := @
|
|
ifeq ($(V),1)
|
|
undefine ECHO_PREFIX
|
|
endif
|
|
|
|
.PHONY: all clean tp-build tp-clean
|
|
|
|
all : $(TARGET)
|
|
|
|
tp-build : $(THIRDPARTS)
|
|
@$(foreach dir,$^,$(MAKE) --no-print-directory -C $(dir);)
|
|
|
|
tp-clean : $(THIRDPARTS)
|
|
@$(foreach dir,$^,$(MAKE) --no-print-directory -C $(dir) clean;)
|
|
|
|
clean : tp-clean
|
|
$(ECHO_PREFIX) $(RM) -rf $(BINDIR) $(BUILDDIR)
|
|
@printf $(CLEANMSG) $(PROJECT)
|
|
|
|
$(TARGET) : $(LDOBJS) tp-build
|
|
$(ECHO_PREFIX) mkdir -p $(dir $@)
|
|
$(ECHO_PREFIX) $(CC) $(CCFLAGS) -o $@ $(LDOBJS) $(LDFLAGS)
|
|
@printf $(LINKMSG) $@
|
|
$(ECHO_PREFIX) $(STRIP) $@
|
|
@printf $(STRIPMSG) $@
|
|
|
|
$(BUILDDIR)/%.dep : $(SRCDIR)/%.c
|
|
$(ECHO_PREFIX) mkdir -p $(dir $@)
|
|
$(ECHO_PREFIX) $(PP) $(CCFLAGS) -MM -MT$(@:.dep=.o) -MF$@ $< 2>/dev/null
|
|
|
|
$(BUILDDIR)/%.o : $(SRCDIR)/%.c
|
|
$(ECHO_PREFIX) mkdir -p $(dir $@)
|
|
$(ECHO_PREFIX) $(CC) $(CCFLAGS) -c -o $@ $<
|
|
@printf $(BUILDMSG) $<
|
|
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
-include $(DEPEND)
|
|
endif
|