summaryrefslogtreecommitdiff
path: root/build/rules.mak
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2005-11-01 16:42:51 +0000
committerBenny Prijono <bennylp@teluu.com>2005-11-01 16:42:51 +0000
commit81ecc233996dcddfbef707bd9a5099f5d9e5eb13 (patch)
treec735c382ff2dac0179b96505c4192ee70185372d /build/rules.mak
parentb5a1af6f999820564ead4867b1e5d5574778ee56 (diff)
Added suppor /and fix things for SunOS port
git-svn-id: http://svn.pjsip.org/repos/pjproject/main@2 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'build/rules.mak')
-rw-r--r--build/rules.mak329
1 files changed, 165 insertions, 164 deletions
diff --git a/build/rules.mak b/build/rules.mak
index d7634335..9757712e 100644
--- a/build/rules.mak
+++ b/build/rules.mak
@@ -1,164 +1,165 @@
-LIBDIR = ../lib
-BINDIR = ../bin
-
-#
-# The full path of output lib file (e.g. ../lib/libapp.a).
-#
-LIB = $($(APP)_LIB)
-
-#
-# The full path of output executable file (e.g. ../bin/app.exe).
-#
-EXE = $($(APP)_EXE)
-
-#
-# Source directory
-#
-SRCDIR = $($(APP)_SRCDIR)
-
-#
-# Output directory for object files (i.e. output/target)
-#
-OBJDIR = output/$(app)-$(MACHINE_NAME)-$(OS_NAME)-$(CC_NAME)
-
-ifeq ($(OS_NAME),linux-kernel)
-export $(APP)_CFLAGS += -DKBUILD_MODNAME=$(app) -DKBUILD_BASENAME=$(app)
-endif
-
-
-#
-# OBJS is ./output/target/file.o
-#
-OBJS = $(foreach file, $($(APP)_OBJS), $(OBJDIR)/$(file))
-OBJDIRS := $(sort $(dir $(OBJS)))
-
-#
-# FULL_SRCS is ../src/app/file1.c ../src/app/file1.S
-#
-FULL_SRCS = $(foreach file, $($(APP)_OBJS), $(SRCDIR)/$(basename $(file)).c $(SRCDIR)/$(basename $(file)).cpp $(SRCDIR)/$(basename $(file)).S)
-
-#
-# When generating dependency (gcc -MM), ideally we use only either
-# CFLAGS or CXXFLAGS (not both). But I just couldn't make if/ifeq to work.
-#
-DEPFLAGS = $($(APP)_CXXFLAGS) $($(APP)_CFLAGS)
-
-# Dependency file
-DEP_FILE := .$(app)-$(MACHINE_NAME)-$(OS_NAME)-$(CC_NAME).depend
-
-
-print_common:
- @echo "###"
- @echo "### DUMPING MAKE VARIABLES (I WON'T DO ANYTHING ELSE):"
- @echo "###"
- @echo APP=$(APP)
- @echo OBJDIR=$(OBJDIR)
- @echo OBJDIRS=$(OBJDIRS)
- @echo OBJS=$(OBJS)
- @echo SRCDIR=$(SRCDIR)
- @echo FULL_SRCS=$(FULL_SRCS)
- @echo $(APP)_CFLAGS=$($(APP)_CFLAGS)
- @echo $(APP)_CXXFLAGS=$($(APP)_CXXFLAGS)
- @echo $(APP)_LDFLAGS=$($(APP)_LDFLAGS)
- @echo DEPFLAGS=$(DEPFLAGS)
-
-print_bin: print_common
- @echo EXE=$(EXE)
- @echo BINDIR=$(BINDIR)
-
-print_lib: print_common
- @echo LIB=$(LIB)
- @echo LIBDIR=$(LIBDIR)
-
-$(LIB): $(LIBDIR) $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
- $(AR)$(LIB) $(OBJS)
- $(RANLIB) $(LIB)
-
-$(EXE): $(BINDIR) $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
- $(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$(EXE)) \
- $(subst /,$(HOST_PSEP),$(OBJS)) $($(APP)_LDFLAGS)
-
-$(OBJDIR)/$(app).o: $(OBJDIRS) $(OBJS)
- $(CROSS_COMPILE)ld -r -o $@ $(OBJS)
-
-$(OBJDIR)/$(app).ko: $(OBJDIR)/$(app).o
- @echo Creating kbuild Makefile...
- @echo "# Our module name:" > $(OBJDIR)/Makefile
- @echo 'obj-m += $(app).o' >> $(OBJDIR)/Makefile
- @echo >> $(OBJDIR)/Makefile
- @echo "# Object members:" >> $(OBJDIR)/Makefile
- @echo -n '$(app)-objs += ' >> $(OBJDIR)/Makefile
- @for file in $($(APP)_OBJS); do \
- echo -n "$$file " >> $(OBJDIR)/Makefile; \
- done
- @echo >> $(OBJDIR)/Makefile
- @echo >> $(OBJDIR)/Makefile
- @echo "# Prevent .o files to be built by kbuild:" >> $(OBJDIR)/Makefile
- @for file in $($(APP)_OBJS); do \
- echo ".PHONY: `pwd`/$(OBJDIR)/$$file" >> $(OBJDIR)/Makefile; \
- done
- @echo >> $(OBJDIR)/Makefile
- @echo all: >> $(OBJDIR)/Makefile
- @echo -e "\tmake -C $(KERNEL_DIR) M=`pwd`/$(OBJDIR) modules $(KERNEL_ARCH)" >> $(OBJDIR)/Makefile
- @echo Invoking kbuild...
- make -C $(OBJDIR)
-
-../lib/$(app).ko: $(LIB) $(OBJDIR)/$(app).ko
- cp $(OBJDIR)/$(app).ko ../lib
-
-$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.c
- $(CC) $($(APP)_CFLAGS) \
- $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
- $(subst /,$(HOST_PSEP),$<)
-
-$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.S
- $(CC) $($(APP)_CFLAGS) \
- $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
- $(subst /,$(HOST_PSEP),$<)
-
-$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cpp
- $(CC) $($(APP)_CXXFLAGS) \
- $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
- $(subst /,$(HOST_PSEP),$<)
-
-$(OBJDIRS):
- $(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
-
-$(LIBDIR):
- $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)),$(HOST_MKDIR))
-
-$(BINDIR):
- $(subst @@,$(subst /,$(HOST_PSEP),$(BINDIR)),$(HOST_MKDIR))
-
-clean:
- $(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)/*),$(HOST_RMR))
- $(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)),$(HOST_RMDIR))
-ifeq ($(OS_NAME),linux-kernel)
- rm -f ../lib/$(app).o
-endif
-
-realclean: clean
- $(subst @@,$(subst /,$(HOST_PSEP),$(LIB)) $(subst /,$(HOST_PSEP),$(EXE)),$(HOST_RM))
- $(subst @@,$(DEP_FILE),$(HOST_RM))
-ifeq ($(OS_NAME),linux-kernel)
- rm -f ../lib/$(app).ko
-endif
-
-depend:
- $(subst @@,$(DEP_FILE),$(HOST_RM))
- for F in $(FULL_SRCS); do \
- if test -f $$F; then \
- echo -n $(OBJDIR)/ >> $(DEP_FILE); \
- if gcc -MM $(DEPFLAGS) $$F | sed '/^#/d' >> $(DEP_FILE); then \
- true; \
- else \
- echo 'err:' >> $(DEP_FILE); \
- exit 1; \
- fi; \
- fi; \
- done
-
-dep: depend
-
--include $(DEP_FILE)
-
+LIBDIR = ../lib
+BINDIR = ../bin
+
+#
+# The full path of output lib file (e.g. ../lib/libapp.a).
+#
+LIB = $($(APP)_LIB)
+
+#
+# The full path of output executable file (e.g. ../bin/app.exe).
+#
+EXE = $($(APP)_EXE)
+
+#
+# Source directory
+#
+SRCDIR = $($(APP)_SRCDIR)
+
+#
+# Output directory for object files (i.e. output/target)
+#
+OBJDIR = output/$(app)-$(MACHINE_NAME)-$(OS_NAME)-$(CC_NAME)
+
+ifeq ($(OS_NAME),linux-kernel)
+export $(APP)_CFLAGS += -DKBUILD_MODNAME=$(app) -DKBUILD_BASENAME=$(app)
+endif
+
+
+#
+# OBJS is ./output/target/file.o
+#
+OBJS = $(foreach file, $($(APP)_OBJS), $(OBJDIR)/$(file))
+OBJDIRS := $(sort $(dir $(OBJS)))
+
+#
+# FULL_SRCS is ../src/app/file1.c ../src/app/file1.S
+#
+FULL_SRCS = $(foreach file, $($(APP)_OBJS), $(SRCDIR)/$(basename $(file)).c $(SRCDIR)/$(basename $(file)).cpp $(SRCDIR)/$(basename $(file)).S)
+
+#
+# When generating dependency (gcc -MM), ideally we use only either
+# CFLAGS or CXXFLAGS (not both). But I just couldn't make if/ifeq to work.
+#
+DEPFLAGS = $($(APP)_CXXFLAGS) $($(APP)_CFLAGS)
+
+# Dependency file
+DEP_FILE := .$(app)-$(MACHINE_NAME)-$(OS_NAME)-$(CC_NAME).depend
+
+
+print_common:
+ @echo "###"
+ @echo "### DUMPING MAKE VARIABLES (I WON'T DO ANYTHING ELSE):"
+ @echo "###"
+ @echo APP=$(APP)
+ @echo OBJDIR=$(OBJDIR)
+ @echo OBJDIRS=$(OBJDIRS)
+ @echo OBJS=$(OBJS)
+ @echo SRCDIR=$(SRCDIR)
+ @echo FULL_SRCS=$(FULL_SRCS)
+ @echo $(APP)_CFLAGS=$($(APP)_CFLAGS)
+ @echo $(APP)_CXXFLAGS=$($(APP)_CXXFLAGS)
+ @echo $(APP)_LDFLAGS=$($(APP)_LDFLAGS)
+ @echo DEPFLAGS=$(DEPFLAGS)
+
+print_bin: print_common
+ @echo EXE=$(EXE)
+ @echo BINDIR=$(BINDIR)
+
+print_lib: print_common
+ @echo LIB=$(LIB)
+ @echo LIBDIR=$(LIBDIR)
+
+$(LIB): $(LIBDIR) $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
+ $(AR)$(LIB) $(OBJS)
+ $(RANLIB) $(LIB)
+
+$(EXE): $(BINDIR) $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
+ $(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$(EXE)) \
+ $(subst /,$(HOST_PSEP),$(OBJS)) $($(APP)_LDFLAGS)
+
+$(OBJDIR)/$(app).o: $(OBJDIRS) $(OBJS)
+ $(CROSS_COMPILE)ld -r -o $@ $(OBJS)
+
+$(OBJDIR)/$(app).ko: $(OBJDIR)/$(app).o
+ @echo Creating kbuild Makefile...
+ @echo "# Our module name:" > $(OBJDIR)/Makefile
+ @echo 'obj-m += $(app).o' >> $(OBJDIR)/Makefile
+ @echo >> $(OBJDIR)/Makefile
+ @echo "# Object members:" >> $(OBJDIR)/Makefile
+ @echo -n '$(app)-objs += ' >> $(OBJDIR)/Makefile
+ @for file in $($(APP)_OBJS); do \
+ echo -n "$$file " >> $(OBJDIR)/Makefile; \
+ done
+ @echo >> $(OBJDIR)/Makefile
+ @echo >> $(OBJDIR)/Makefile
+ @echo "# Prevent .o files to be built by kbuild:" >> $(OBJDIR)/Makefile
+ @for file in $($(APP)_OBJS); do \
+ echo ".PHONY: `pwd`/$(OBJDIR)/$$file" >> $(OBJDIR)/Makefile; \
+ done
+ @echo >> $(OBJDIR)/Makefile
+ @echo all: >> $(OBJDIR)/Makefile
+ @echo -e "\tmake -C $(KERNEL_DIR) M=`pwd`/$(OBJDIR) modules $(KERNEL_ARCH)" >> $(OBJDIR)/Makefile
+ @echo Invoking kbuild...
+ make -C $(OBJDIR)
+
+../lib/$(app).ko: $(LIB) $(OBJDIR)/$(app).ko
+ cp $(OBJDIR)/$(app).ko ../lib
+
+$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.c
+ $(CC) $($(APP)_CFLAGS) \
+ $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
+ $(subst /,$(HOST_PSEP),$<)
+
+$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.S
+ $(CC) $($(APP)_CFLAGS) \
+ $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
+ $(subst /,$(HOST_PSEP),$<)
+
+$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cpp
+ $(CC) $($(APP)_CXXFLAGS) \
+ $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
+ $(subst /,$(HOST_PSEP),$<)
+
+$(OBJDIRS):
+ $(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
+
+$(LIBDIR):
+ $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)),$(HOST_MKDIR))
+
+$(BINDIR):
+ $(subst @@,$(subst /,$(HOST_PSEP),$(BINDIR)),$(HOST_MKDIR))
+
+clean:
+ $(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)/*),$(HOST_RMR))
+ $(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)),$(HOST_RMDIR))
+ifeq ($(OS_NAME),linux-kernel)
+ rm -f ../lib/$(app).o
+endif
+
+realclean: clean
+ $(subst @@,$(subst /,$(HOST_PSEP),$(LIB)) $(subst /,$(HOST_PSEP),$(EXE)),$(HOST_RM))
+ $(subst @@,$(DEP_FILE),$(HOST_RM))
+ifeq ($(OS_NAME),linux-kernel)
+ rm -f ../lib/$(app).ko
+endif
+
+depend:
+ $(subst @@,$(DEP_FILE),$(HOST_RM))
+ for F in $(FULL_SRCS); do \
+ if test -f $$F; then \
+ bash -c "echo -n $(OBJDIR)/" >> $(DEP_FILE); \
+ if gcc -MM $(DEPFLAGS) $$F | sed '/^#/d' >> $(DEP_FILE); then \
+ true; \
+ else \
+ echo 'err:' >> $(DEP_FILE); \
+ rm -f $(DEP_FILE); \
+ exit 1; \
+ fi; \
+ fi; \
+ done;
+
+dep: depend
+
+-include $(DEP_FILE)
+