aboutsummaryrefslogtreecommitdiffstats
path: root/makefile
diff options
context:
space:
mode:
Diffstat (limited to 'makefile')
-rw-r--r--makefile95
1 files changed, 35 insertions, 60 deletions
diff --git a/makefile b/makefile
index 0b36be9..a01a0dd 100644
--- a/makefile
+++ b/makefile
@@ -1,91 +1,66 @@
-
.PHONY: all clean debug distclean
-#LDLIBS= -lm -lpulse-simple -lpulse -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice -lpostproc -lz -lx264 -lva -lrt
-
-LDLIBS=
-
-# gcc a fordításhoz
+# buid & link with gcc
CC = gcc
-# gcc-vel is linkelje
LD = gcc
-# fordító flagek
-debug: CFLAGS = -g -Wall -g3 -ggdb -O0 -fmessage-length=0 -lefence # CodeBlocks-nak
-#debug: CFLAGS = -O0 -g3 -Wall -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)"
-# -fmessage-length=0 -> "N" karakter hibaüzenet, N=0 akkor minden üzenet új sorba
-# -g3 -> Level 3 debug info
-# -MT"$(@)" -> Target
-# -c nyelvvel kapcsolatos
-
-# fordíto flagek
-CFLAGS = -Wall -ggdb -lefence
-# Linker flagek
-LDFLAGS = -lefence
-
-# tisztára törlés
-RM = /bin/rm -rf
+# néhány apróság:
MKD = /bin/mkdir -p
+RM = /bin/rm
+
+
+# fordíto általános flagek
+CFLAGS = -Wall
+LDFLAGS =
+LDLIBS =
-# OBJECT mappa
-OBJDIR = bin
-DEBUGDIR = bin/debug
+
+BINDIR = bin
+OBJDIR = build
# .o fájlok
-OBJ = main.o ini_read.o
+OBJ = main.o ini_read.o
+PROG = $(BINDIR)/lightconfini
OBJS = $(addprefix $(OBJDIR)/,$(OBJ))
-# program neve
-#PROG = maxini
-PROG = $(OBJDIR)/lightconfini
-PROG_D = $(DEBUGDIR)/lightconfini
-
-# make elég, nem szükséges a program neve
+# ALL kell legyen legelőször!
all: $(PROG)
+# debug-hoz felüldefiniálva
+debug: CFLAGS = -Wall -g -g3 -ggdb -Wpedantic -Wmissing-prototypes
+debug: LDFLAGS =
+debug: LDLIBS = -lefence
+# nem mindegy, hogy mellette van, vagy alatta egy sorral!
+debug: clean all
+
+# Ha még nem létezik az obj könyvtár, létrehozza
+$(OBJS): | $(OBJDIR)
+$(PROG): | $(BINDIR)
-# Az elkészül object fájlok összepakolása a prgramba
+# Fordított sorrend: először a főprogram
$(PROG): $(OBJS)
-# @echo 'Linking target: $@'
-# @echo 'Invoking: $(LD) C Linker'
$(LD) $(LDFLAGS) $(OBJS) -o $(PROG) $(LDLIBS)
-# @echo 'Finished building target: $@'
@echo ' '
-# Ha még nem létezik az obj könyvtár, létrehozza
-$(OBJS): | $(OBJDIR)
-
-# A forrásfájlok fordítása egyesével
-$(OBJS): $(OBJDIR)/%.o: ./src/%.c
-# @echo 'Building file: '$<'
+# Utána: A forrásfájlok fordítása egyesével
+$(OBJS): $(OBJDIR)/%.o: ./src/%.c
$(CC) $(CFLAGS) -c -o "$@" "$<"
-# @echo 'Finished building: $<'
-# @echo ' '
-# Az object könyvtár létrehozása
-$(OBJDIR):
+# OBJ létrehozáshoz
+$(BINDIR):
+ $(MKD) $(BINDIR)
+$(OBJDIR):
$(MKD) $(OBJDIR)
+rebuild: clean all
-#Debugoláshoz
-debug: $(PROG_D)
-
-$(PROG_D): $(OBJS)
- $(MKD) $(DEBUGDIR)
- $(LD) $(LDFLAGS) $(OBJS) -o $(PROG_D) $(LDLIBS)
-
-
-
-# Kis takarítás
clean:
- $(RM) $(PROG) $(OBJS) $(PROG_D)
-
+ $(RM) $(PROG) $(OBJS)
-# Teljes takarítás
distclean:
- $(RM) $(PROG) $(OBJS) $(PROG_D) $(OBJDIR) $(DEBUGDIR)
+ $(RM) -r $(PROG) $(OBJS) bin/ build/