diff options
author | M.Gergő | 2020-05-26 19:37:44 +0200 |
---|---|---|
committer | M.Gergő | 2020-05-26 19:37:44 +0200 |
commit | a3bf8e4f4c8bb023b1b7dfb8f125140345a23a04 (patch) | |
tree | cdd6e7be6be4b7c361157235e3ec1a278e393060 | |
parent | b3867d1d28968cf0790fbfa4413d0a8aec7949ef (diff) | |
download | lightconfini-d0a41513ed72916e43592d5037d2cadf21fe5f88.tar.gz lightconfini-d0a41513ed72916e43592d5037d2cadf21fe5f88.zip |
Improved makefile1.0.1
-rw-r--r-- | makefile | 43 |
1 files changed, 23 insertions, 20 deletions
@@ -1,4 +1,4 @@ -.PHONY: all clean install copylib ldconf lib debug distclean +.PHONY: all clean test testlib install copylib ldconf lib debug distclean # buid & link with gcc CC = gcc @@ -19,54 +19,57 @@ LDLIBS = BINDIR = bin LIBDIR = libdir OBJDIR = build +SRCDIR = src # .o fájlok -OBJ = main.o ini_read.o ini_write.o PROG = $(BINDIR)/lightconfini -LIB = $(LIBDIR)/liblightconfini.so.1.0.1 -lib: OBJ := $(filter-out main.o, $(OBJ)) +#OBJ = main.o ini_read.o ini_write.o +OBJ = $(patsubst $(SRCDIR)/%.c, %.o, $(wildcard $(SRCDIR)/*.c)) OBJS = $(addprefix $(OBJDIR)/,$(OBJ)) - +lib: OBJS = $(addprefix $(OBJDIR)/, $(filter-out main.o, $(OBJ)) ) +lib: PROG = $(LIBDIR)/liblightconfini.so.1.0.1 +# Egyik targetben beállított változó nem érvényes a másik targetben! # ALL kell legyen legelőször! # Az sem mindegy, hogy mellette van, vagy alatta egy sorral! -all: $(PROG) -lib: clean $(LIB) -debug: clean all +all: lib +test: $(PROG) +lib: $(PROG) +debug: clean $(PROG) install: lib copylib -testlib: clean all +testlib: lib ldconf clean + $(CC) $(CFLAGS) -o $(OBJDIR)/main.o $(SRCDIR)/main.c + $(LD) $(LDFLAGS) $(OBJDIR)/main.o -o $(PROG) $(LDLIBS) # debug-hoz felüldefiniálva -debug: CFLAGS = -Wall -c -g -g3 -ggdb -std=c89 -Wpedantic -Wmissing-prototypes -debug: LDFLAGS = +debug: CFLAGS = -Wall -c -g -g3 -ggdb -std=c89 -Wpedantic -Wmissing-prototypes debug: LDLIBS = -lefence # make lib FLAGS: not link: -c, relative addresses: -fPIC lib: CFLAGS = -fPIC -c -Wall lib: LDFLAGS = -shared -Wl,-soname,liblightconfini.so.1 lib: LDLIBS = -lc # nem mindegy, hogy mellette van, vagy alatta egy sorral! +testlib: LDFLAGS = -ldl -rdynamic + + # Ha még nem létezik az obj könyvtár, létrehozza $(OBJS): | $(OBJDIR) -$(PROG): | $(BINDIR) -$(LIB): | $(LIBDIR) +$(PROG): | $(BINDIR) +$(PROG): | $(LIBDIR) # Fordított sorrend: először a főprogram $(PROG): $(OBJS) - $(LD) $(LDFLAGS) -o $(PROG) $(OBJS) $(LDLIBS) - @echo ' ' - -# For shared library -$(LIB): $(OBJS) - $(LD) $(LDFLAGS) $(OBJS) -o $(LIB) $(LDLIBS) + $(LD) $(LDFLAGS) $(OBJS) -o $(PROG) $(LDLIBS) @echo ' ' # Utána: A forrásfájlok fordítása egyesével -$(OBJS): $(OBJDIR)/%.o: ./src/%.c +$(OBJS): $(OBJDIR)/%.o: $(SRCDIR)/%.c $(CC) $(CFLAGS) -o "$@" "$<" + # OBJ létrehozáshoz $(BINDIR): $(MKD) $(BINDIR) |