X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=TP_11%2Fexo1%2FMakefile;h=634334e0682cb605ae3af644cb9ee7461d927cdb;hb=3bb0a9f80ebc5b3d7c05c78cbf65241c6a6b0490;hp=6f138af0bfe5368352baf015e4962e56551dea48;hpb=824b6c414b62598f2fc141d39f3ae95a4730c5da;p=TD_C.git diff --git a/TP_11/exo1/Makefile b/TP_11/exo1/Makefile index 6f138af..634334e 100644 --- a/TP_11/exo1/Makefile +++ b/TP_11/exo1/Makefile @@ -14,13 +14,14 @@ BINARY_NAME=exo1 LIBOBJS=clist.o # object to put in the library LIBRARY_NAME=libtpC +#LDLIBS=-L. -ltpC BUILD_TYPE=debug # ==================================== # DO NOT CHANGE STUFF BEYOND THIS LINE # ==================================== -all: $(LIBRARY_NAME).a $(BINARY_NAME) +all: $(BINARY_NAME) $(BINARY_NAME).dynamic $(BINARY_NAME).static CC=gcc LD=gcc @@ -41,7 +42,8 @@ STRIP_FLAG = -s OPTIFLAG = -O3 endif -CFLAGS := $(CFLAGS) $(WARN_FLAGS) $(STD_FLAG) $(OPTI_FLAG) $(DEBUG_FLAG) +#FIXME: Add a way to better control the library build +CFLAGS := -fPIC $(CFLAGS) $(WARN_FLAGS) $(STD_FLAG) $(OPTI_FLAG) $(DEBUG_FLAG) LDFLAGS := $(LDFLAGS) $(STRIP_FLAG) LIBLDFLAGS := -shared $(LDFLAGS) @@ -57,17 +59,26 @@ $(shell mkdir -p $(DEPDIR)) DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Td POSTCOMPILE = mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d +$(LIBRARY_NAME).a: $(OBJSLIB) + @echo "[AR StO] $@" + @$(AR) rcs $@ $^ + +$(LIBRARY_NAME).so: $(OBJSLIB) + @echo "[LD ShO] $@" + @$(LD) $(CFLAGS) $(LIBLDFLAGS) $^ $(LDLIBS) -o $@ + $(BINARY_NAME): $(OBJS) @echo "[LD ] $@" @$(LD) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@ -$(LIBRARY_NAME).so: $(OBJSLIB) $(BINARY_NAME) - @echo "[LD ShO] $@" - @$(LD) $(CFLAGS) $(LDLIBFLAGS) $^ $(LDLIBS) -o $@ +LOCALLDLIBS=-L. -ltpC +$(BINARY_NAME).static: $(OBJDIR)/$(BINARY_NAME).o $(LIBRARY_NAME).a + @echo "[LD ] $@" + @$(LD) $(CFLAGS) $(LDFLAGS) $^ $(LOCALLDLIBS) $(LDLIBS) -o $@ -$(LIBRARY_NAME).a: $(OBJS) - @echo "[AR StO] $@" - @$(AR) rcs $@ $^ +$(BINARY_NAME).dynamic: $(OBJDIR)/$(BINARY_NAME).o $(LIBRARY_NAME).so + @echo "[LD ] $@" + @$(LD) $(CFLAGS) $(LDFLAGS) $^ $(LOCALLDLIBS) $(LDLIBS) -o $@ $(OBJDIR)/%.o: %.c $(DEPDIR)/%.d @echo "[C ] $*" @@ -84,6 +95,8 @@ clean: @echo "[CLN]" -@rm -r $(BUILDDIR) -@rm $(BINARY_NAME) + -@rm $(BINARY_NAME).static + -@rm $(BINARY_NAME).dynamic -@rm $(LIBRARY_NAME).so -@rm $(LIBRARY_NAME).a