summaryrefslogtreecommitdiffstats
path: root/makefiles/subdir.mk
diff options
context:
space:
mode:
Diffstat (limited to 'makefiles/subdir.mk')
-rw-r--r--makefiles/subdir.mk41
1 files changed, 41 insertions, 0 deletions
diff --git a/makefiles/subdir.mk b/makefiles/subdir.mk
new file mode 100644
index 0000000..63e66bf
--- /dev/null
+++ b/makefiles/subdir.mk
@@ -0,0 +1,41 @@
+include $(ROOTDIR)/makefiles/config.mk
+
+INCLUDE = $(ZINCLUDE) $(EXTERNAL_INCLUDE)
+
+HEADERS = $(wildcard *.h)
+SOURCES_CPP = $(wildcard *.cpp)
+SOURCES_OBJCPP = $(wildcard *.M)
+SOURCES_OBJC = $(wildcard *.m)
+OBJECTS = $(patsubst %.cpp, %.o, $(SOURCES_CPP)) $(patsubst %.M, %.o, $(SOURCES_OBJCPP)) $(patsubst %.m, %.o, $(SOURCES_OBJC))
+
+.SUFFIXES: .cpp .M .m .o .h
+
+.cpp.o:
+ $(CC) -MMD -c $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) $(INCLUDE) $<
+
+.M.o:
+ @echo -n 'Compiling $@ ...'
+ifdef CFLAGS_NOARCH
+ @$(CC) -MM $(CFLAGS_PRE) $(INCLUDE) $< -o `basename $< .M`.d
+ @$(CC) -c $(CFLAGS) $(INCLUDE) $<
+else
+ @$(CC) -MMD -c $(CFLAGS) $(INCLUDE) $<
+endif
+ @echo ' OK'
+
+.m.o:
+ @echo -n 'Compiling $@ ...'
+ifdef CFLAGS_NOARCH
+ @$(CC) -MM $(CFLAGS_PRE) $(INCLUDE) $< -o `basename $< .m`.d
+ @$(CC) -c $(CFLAGS) $(INCLUDE) $<
+else
+ @$(CC) -MMD -c $(CFLAGS) $(INCLUDE) $<
+endif
+ @echo ' OK'
+
+all: $(OBJECTS)
+
+clean:
+ @$(RM) *.o *.s *.ld *.d
+
+-include *.d