Commit 9529c1b

mo k <mo@mokhan.ca>
2012-02-19 03:52:43
update makefile to create bin/ and obj/ dir. collapse inc/ and src/
1 parent 1ac3710
main.c โ†’ src/main.c
@@ -1,7 +1,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "inc/reverse.h"
+#include "reverse.h"
 
 typedef int (*Test)();
 
reverse.c โ†’ src/reverse.c
File renamed without changes
inc/reverse.h โ†’ src/reverse.h
File renamed without changes
makefile
@@ -1,14 +1,20 @@
-PROGRAM = practice
-C_FILES := $(wildcard *.c)
-OBJS := $(patsubst %.c, %.o, $(C_FILES))
-CC = cc
-CFLAGS = -Wall -pedantic
-LDFLAGS = 
+SRCDIR 		:= src/
+OBJDIR 		:= obj/
+BINDIR 		:= bin/
 
-all: $(PROGRAM)
+PROGRAM 	:= practice
+EXE 			:= $(BINDIR)$(PROGRAM)
 
-$(PROGRAM): .depend $(OBJS)
-	$(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o $(PROGRAM)
+C_FILES 	:= $(wildcard *.c) $(wildcard */*.c)
+OBJS 			:= $(patsubst src/%.c, obj/%.o, $(C_FILES))
+CC 				:= cc
+CFLAGS 		:= -Wall -pedantic
+LDFLAGS 	:= 
+
+all: init $(EXE)
+
+$(EXE): .depend $(OBJS)
+	$(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o $(EXE)
 
 depend: .depend
 
@@ -20,16 +26,24 @@ depend: .depend
 
 -include .depend
 
-%.o: %.c
+$(OBJDIR)%.o: $(SRCDIR)%.c
 	$(CC) $(CFLAGS) -c $< -o $@
 
-%: %.c
+$(SRCDIR)/%: %.c
 	$(CC) $(CFLAGS) -o $@ $<
 
 clean:
-	rm -f *.o *.out .depend
+	@echo 'cleaning...'
+	@rm -fr *.o *.out .depend $(BINDIR) $(OBJDIR)
+
+init: clean
+	@echo 'initializing...'
+	@mkdir bin obj
+
+run: all
+	$(EXE)
 
-.PHONY: clean depend
+.PHONY: clean init depend
 
 list:
 	@echo $(C_FILES)