aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorM.Gergő2020-05-26 19:37:44 +0200
committerM.Gergő2020-05-26 19:37:44 +0200
commita3bf8e4f4c8bb023b1b7dfb8f125140345a23a04 (patch)
treecdd6e7be6be4b7c361157235e3ec1a278e393060
parentb3867d1d28968cf0790fbfa4413d0a8aec7949ef (diff)
downloadlightconfini-a3bf8e4f4c8bb023b1b7dfb8f125140345a23a04.tar.gz
lightconfini-a3bf8e4f4c8bb023b1b7dfb8f125140345a23a04.zip
Improved makefile1.0.1
-rw-r--r--makefile43
1 files changed, 23 insertions, 20 deletions
diff --git a/makefile b/makefile
index e9d38df..ce9b67e 100644
--- a/makefile
+++ b/makefile
@@ -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)