diff options
author | cathook <cat.hook31894@gmail.com> | 2013-11-23 03:18:17 +0800 |
---|---|---|
committer | cathook <cat.hook31894@gmail.com> | 2013-11-23 03:18:17 +0800 |
commit | 1ab1516ebc0730a0bc63fa6d98dbfdc23840bd7b (patch) | |
tree | 5dcb484d1fe41093c46cec1089baa05b7909b611 | |
parent | ffab2d06d8173723de1d61c3e439882f6feda161 (diff) | |
download | ctl-1ab1516ebc0730a0bc63fa6d98dbfdc23840bd7b.tar.gz ctl-1ab1516ebc0730a0bc63fa6d98dbfdc23840bd7b.tar.zst ctl-1ab1516ebc0730a0bc63fa6d98dbfdc23840bd7b.zip |
add Makefile
-rw-r--r-- | Makefile | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7b00a4e --- /dev/null +++ b/Makefile @@ -0,0 +1,76 @@ +###################### path name ########################### +LIB = lib +INC = include +SRC = src +OBJ = obj +TST = test + +################ compiler information: gcc ################# +C_OPT := -I$(INC) -L$(LIB) -O2 +A_OPT := + + +TEST_CC := gcc $(C_OPT) -o + +OBJ_CC := gcc $(C_OPT) -c -o +DLIB_CC := gcc $(C_OPT) -shared -fPIC -o +SLIB_CC := ar $(A_OPT) cvr + +######################## targets ########################### +TARGET = utility vector #list queue stack dequeue heap map hash +COMMON = utility + +TEST = vector + +#SRC_NAME := $(foreach n,$(TARGET),$(SRC)/$(n).c) +#HEA_NAME := $(foreach n,$(TARGET),$(INC)/$(n).h) +#OBJ_NAME := $(foreach n,$(TARGET),$(OBJ)/$(n).o) +#SLIB_NAME := $(foreach n,$(TARGET),$(LIB)/lib$(n).a) +#DLIB_NAME := $(foreach n,$(TARGET),$(LIB)/lib$(n).so) + +######################## setting ########################### +.SUFFIXES: +.PHONY: all clean test +.PRECIOUS: +.SECONDARY: + +######################## targets ########################### +all: $(TARGET); + +$(TARGET): %: $(LIB)/%.a $(LIB)/%.so $(OBJ)/%.o; + +$(LIB)/%.a: $(OBJ)/%.o + @echo 'make static library ........ $@' + @$(SLIB_CC) $@ $< + +$(LIB)/%.so: $(SRC)/%.c $(INC)/%.h + @echo 'make dynamic library ....... $@' + @$(DLIB_CC) $@ $< + +$(OBJ)/%.o: $(SRC)/%.c $(INC)/%.h + @echo 'make obj file .............. $@' + @$(OBJ_CC) $@ $< + +test: $(addprefix $(TST)/test_,$(TEST)) + +$(TST)/test_%: $(TST)/test_%.slib $(TST)/test_%.dlib $(TST)/test_%.oooo; + +$(TST)/test_%.slib: $(TST)/test_%.c $(LIB)/%.a $(LIB)/$(COMMON).a + @echo 'make test program for ...... $^' + @$(TEST_CC) $@ $^ + +$(TST)/test_%.dlib: $(TST)/test_%.c $(LIB)/%.so $(LIB)/$(COMMON).so + @echo 'make test program for ...... $^' + @$(TEST_CC) $@ $^ + +$(TST)/test_%.oooo: $(TST)/test_%.c $(OBJ)/%.o $(OBJ)/$(COMMON).o + @echo 'make test program for ...... $^' + @$(TEST_CC) $@ $^ + + +clean: + -rm -f $(LIB)/* + -rm -f $(OBJ)/* + -rm -f $(TST)/*.slib + -rm -f $(TST)/*.dlib + -rm -f $(TST)/*.oooo |