Committing makefile changes to build from top level
authorRaghu Nambiath <rnambiath@ti.com>
Wed, 1 Feb 2012 01:05:30 +0000 (20:05 -0500)
committerRaghu Nambiath <rnambiath@ti.com>
Wed, 1 Feb 2012 01:05:30 +0000 (20:05 -0500)
ti/runtime/netapi/build/Makefile
ti/runtime/netapi/makefile_armv7 [new file with mode: 0644]
ti/runtime/netapi/test/build/Makefile

index 0c45131deef0ed2def9cce3cdd3db98ffeec7c65..d93ce43b737d38254b63cb46f49fe012ca81869e 100644 (file)
@@ -4,39 +4,59 @@ CPPI_INC_DIR = $(PDK_INSTALL_PATH)/ti/drv/cppi
 
 INCDIR := $(PDK_INSTALL_PATH);  $(QMSS_INC_DIR); $(CPPI_INC_DIR)
 
-# Libraries
-QMSS_LIB = $(PDK_INSTALL_PATH)/ti/drv/qmss/lib/ti.drv.qmss.aearmv7
-CPPI_LIB = $(PDK_INSTALL_PATH)/ti/drv/cppi/lib/ti.drv.cppi.aearmv7
-PA_LIB   = $(PDK_INSTALL_PATH)/ti/drv/pa/lib/ti.drv.pa.aearmv7
-NWAL_LIB = $(PDK_INSTALL_PATH)/ti/drv/nwal/lib/ti.drv.nwal.aearmv7
+# Output for prebuilt generated libraries
+export ARMV7LIBDIR ?= ../lib
+export ARMV7OBJDIR ?= ../obj
+
+# Set NETAPI INSTALL PATH to Transport SDK for default
+export NETAPI_INSTALL_PATH ?= $(TRANS_SDK_INSTALL_PATH)
 
 #NETAPI dirs
-NETAPI_SRC_DIR = ../src
-NETAPI_INC_DIR = ../
-NETAPI_LIB_DIR = ../lib
+OBJEXT = o 
+INTERNALLINKDEFS =
+NETAPI_INC_DIR = $(NETAPI_INSTALL_PATH)/ti/runtime/netapi
+SRCDIR = $(NETAPI_INC_DIR)/src
 
-API_OBJS= $(NETAPI_SRC_DIR)/netapi.o $(NETAPI_SRC_DIR)/pktio.o $(NETAPI_SRC_DIR)/netcp_cfg.o $(NETAPI_SRC_DIR)/netapi_sched.o $(NETAPI_SRC_DIR)/netapi_vm.o $(NETAPI_SRC_DIR)/netapi_init.o $(NETAPI_SRC_DIR)/osal.o $(NETAPI_SRC_DIR)/tim64.o $(NETAPI_SRC_DIR)/timlist.o $(NETAPI_SRC_DIR)/netapi_timer.o
+VPATH=$(SRCDIR)
 
-CROSS=arm-none-linux-gnueabi-gcc
-CROSS_PATH=/opt/CodeSourcery/Sourcery_G++_Lite/bin
-CC=$(CROSS_PATH)/$(CROSS)
-AR=$(CROSS_PATH)/arm-none-linux-gnueabi-ar
-CFLAGS= -g -I$(NETAPI_INC_DIR) -I.  -I $(NETAPI_SRC_DIR) -I$(PDK_INSTALL_PATH) -I$(NWAL_INSTALL_PATH) -I$(QMSS_INC_DIR) -I$(CPPI_INC_DIR)  -D__ARMv7 -D_VIRTUAL_ADDR_SUPPORT -D__LINUX_USER_SPACE -D_LITTLE_ENDIAN=1 -DMAKEFILE_BUILD -pthread -D _GNU_SOURCE
 
-all: api 
+#Cross tools
+CC = $(CROSS_TOOL_INSTALL_PATH)/$(CROSS_TOOL_PRFX)gcc -c
+AR = $(CROSS_TOOL_INSTALL_PATH)/$(CROSS_TOOL_PRFX)ar -r
 
-clean: 
-       rm -f $(NETAPI_SRC_DIR)/*.o
-       rm -f $(NETAPI_LIB_DIR)/*.a
 
+#List the COMMONSRC Files
+COMMONSRCC = \
+    netapi.c \
+    netapi_init.c \
+    netapi_sched.c \
+    netapi_timer.c \
+    netapi_vm.c \
+    netcp_cfg.c \
+    osal.c \
+    pktio.c \
+    tim64.c\
+    timlist.c
+
+CFLAGS= $(DEBUG_FLAG) -I$(NETAPI_INC_DIR) -I.  -I $(SRCDIR) -I$(PDK_INSTALL_PATH) -I$(TRANS_SDK_INSTALL_PATH) -I$(QMSS_INC_DIR) -I$(CPPI_INC_DIR)  -D__ARMv7 -D_VIRTUAL_ADDR_SUPPORT -D__LINUX_USER_SPACE -D_LITTLE_ENDIAN=1 -DMAKEFILE_BUILD -pthread -D _GNU_SOURCE
+INCS = -I$(strip $(subst ;, -I,$(subst $(space),\$(space),$(INCDIR))))
+all: lib 
 
-%.o: %.c
-       $(CC)  -c  $(CFLAGS)  $<  -o $@
+lib: $(ARMV7LIBDIR)/libnetapi.a
 
-api: $(NETAPI_LIB_DIR)/ti.runtime.netapi.aearmv7.a
 
-$(NETAPI_LIB_DIR)/ti.runtime.netapi.aearmv7.a:  $(API_OBJS) 
-       rm -f $(NETAPI_LIB_DIR)/ti.runtime.netapi.aearmv7.a
-       $(AR)  rcv $(NETAPI_LIB_DIR)/ti.runtime.netapi.aearmv7.a $(API_OBJS)
+# Make Rule for the COMMONSRC Files
+COMMONSRCCOBJS = $(patsubst %.c, $(ARMV7OBJDIR)/netapi/lib/%.$(OBJEXT), $(COMMONSRCC))
 
-       
+$(COMMONSRCCOBJS): $(ARMV7OBJDIR)/netapi/lib/%.$(OBJEXT): %.c
+       -@echo compiling $< ...
+       @mkdir -p $(ARMV7OBJDIR)/netapi/lib/
+       $(CC) $(CFLAGS) $(INCS)  $< -o $@
+
+$(ARMV7LIBDIR)/libnetapi.a: $(COMMONSRCCOBJS)
+       @echo archiving $? into $@ ...
+       @$(AR) $@ $?
+
+clean: 
+       rm -f $(ARMV7OBJDIR)/netapi/lib/*.o
+       rm -f $(ARMV7LIBDIR)/libnetapi.a
diff --git a/ti/runtime/netapi/makefile_armv7 b/ti/runtime/netapi/makefile_armv7
new file mode 100644 (file)
index 0000000..bc82fc9
--- /dev/null
@@ -0,0 +1,75 @@
+#*******************************************************************************
+#* FILE PURPOSE: Top level makefile for Creating Component Libraries for ARM
+#* architectures
+#*******************************************************************************
+#* FILE NAME: makefile
+#*
+#* DESCRIPTION: Defines Compiler tools paths, libraries , Build Options 
+#*
+#*
+#*******************************************************************************
+#*
+# (Mandatory) Specify where various tools are installed.
+
+# Output for prebuilt generated libraries
+export ARMV7LIBDIR ?= ./lib
+export ARMV7OBJDIR ?= ./obj
+
+# ROOT Directory
+export ROOTDIR := ../../..
+
+
+# INCLUDE Directory
+export INCDIR := ../;$(PDK_INSTALL_PATH);$(ROOTDIR)
+
+# Common Macros used in make
+
+ifndef RM
+export RM = rm -f
+endif
+
+ifndef CP
+export CP = cp -p
+endif
+
+export MKDIR = mkdir -p
+
+ifndef RMDIR
+export RMDIR = rm -rf
+endif
+
+ifndef SED
+export SED = sed
+endif
+
+ifndef MAKE
+export MAKE = make
+endif
+
+# PHONY Targets
+.PHONY: lib tests  examples all clean
+
+# all rule
+all: .executables
+.executables: lib tests examples
+lib:
+
+# Make rule to create $(ARMV7LIBDIR)/libnetapi.a library
+lib: $(ARMV7LIBDIR)/libnetapi.a
+
+$(ARMV7LIBDIR)/libnetapi.a:
+       -@echo Building library...
+       @$(MAKE) -f ./build/Makefile $@
+
+# Rule to clean $(ARMV7LIBDIR)/libnetapi.a library
+clean:
+       -@echo Cleaning netapi package...
+       @$(MAKE) -f ./build/Makefile $@
+       @$(MAKE) -f ./test/build/Makefile $@
+
+# Make rule to create tests
+tests:
+       -@echo compiling tests ...
+       @$(MAKE) -f ./test/build/Makefile $@
+
+examples:
index 21c2edefe257c062db8d16074d2ff1cb31479f4e..ac533924d0d24a152fc6339ad3874e05b43c20ff 100644 (file)
@@ -1,55 +1,75 @@
-TRIE_OBJS=../trie.o
-NT_OBJS= ../net_test.o  ../stubs.o  
+export ARMV7OBJDIR ?= ./obj
+export ARMV7BINDIR ?= ./bin
+export ARMV7LIBDIR ?= ./lib
+
+# Set NETAPI INSTALL PATH to Transport SDK for default
+export NETAPI_INSTALL_PATH ?= $(TRANS_SDK_INSTALL_PATH)
+
+TRIE_OBJS=$(ARMV7OBJDIR)/netapi/test/trie.o
+NT_OBJS= $(ARMV7OBJDIR)/netapi/test/net_test.o  $(ARMV7OBJDIR)/netapi/test/stubs.o  
+
 # INCLUDE Directories
 QMSS_INC_DIR = $(PDK_INSTALL_PATH)/ti/drv/qmss
 CPPI_INC_DIR = $(PDK_INSTALL_PATH)/ti/drv/cppi
-NETAPI_INC_DIR = ../../
+
+NETAPI_INC_DIR = $(NETAPI_INSTALL_PATH)/ti/runtime/netapi
 
 #NETAPI LIB Build directory
-NETAPI_BUILD_DIR = ../../build
+NETAPI_BUILD_DIR = $(NETAPI_INC_DIR)/build
 
 # Support Libraries used by NETAPI 
-QMSS_LIB = $(PDK_INSTALL_PATH)/ti/drv/qmss/lib/ti.drv.qmss.aearmv7
-CPPI_LIB = $(PDK_INSTALL_PATH)/ti/drv/cppi/lib/ti.drv.cppi.aearmv7
-PA_LIB   = $(PDK_INSTALL_PATH)/ti/drv/pa/lib/ti.drv.pa.aearmv7
-PKTLIB_LIB   = $(PDK_INSTALL_PATH)/ti/runtime/pktlib/lib/ti.runtime.pktlib.aearmv7
-NWAL_LIB = $(PDK_INSTALL_PATH)/ti/drv/nwal/lib/ti.drv.nwal.aearmv7
+QMSS_LIB = -lqmss
+CPPI_LIB = -lcppi
+PA_LIB   = -lpa
+NWAL_LIB = -lnwal
+PKTLIB_LIB = -lpktlib
+NETAPI_LIB = -lnetapi
 
-#where netapi lib resides after being built
-NETAPI_LIB_DIR= ../../lib
+#Cross tools
+CC = $(CROSS_TOOL_INSTALL_PATH)/$(CROSS_TOOL_PRFX)gcc
+AR = $(CROSS_TOOL_INSTALL_PATH)/$(CROSS_TOOL_PRFX)ar -r
 
-CROSS=arm-none-linux-gnueabi-gcc
-CROSS_PATH=/opt/CodeSourcery/Sourcery_G++_Lite/bin
-CC=$(CROSS_PATH)/$(CROSS)
-AR=$(CROSS_PATH)/arm-none-linux-gnueabi-ar
-CFLAGS= -g -I../ -I. -I$(NETAPI_INC_DIR) -I$(NETAPI_INC_DIR)/src -I$(PDK_INSTALL_PATH)  -I$(QMSS_INC_DIR) -I$(CPPI_INC_DIR)  -D__ARMv7 -D_VIRTUAL_ADDR_SUPPORT -D__LINUX_USER_SPACE -D_LITTLE_ENDIAN=1 -DMAKEFILE_BUILD -pthread -D _GNU_SOURCE
+CFLAGS= $(DEBUG_FLAG) -I../ -I. -I$(NETAPI_INC_DIR) -I$(NETAPI_INC_DIR)/src -I$(PDK_INSTALL_PATH)  -I$(TRANS_SDK_INSTALL_PATH) -I$(QMSS_INC_DIR) -I$(CPPI_INC_DIR)  -D__ARMv7 -D_VIRTUAL_ADDR_SUPPORT -D__LINUX_USER_SPACE -D_LITTLE_ENDIAN=1 -DMAKEFILE_BUILD -pthread -D _GNU_SOURCE
+# Linker options
+INTERNALLINKDEFS = --start-group -L$(ARMV7LIBDIR) $(NETAPI_LIB) $(PKTLIB_LIB) $(QMSS_LIB) $(CPPI_LIB) $(NWAL_LIB) $(PA_LIB) -lrt --end-group
 
 
-all: net_test synchtest synchtest2 
+all: tests 
+
+tests: $(ARMV7BINDIR)/netapi/test/.created $(ARMV7BINDIR)/netapi/test/net_test $(ARMV7BINDIR)/netapi/test/synchtest $(ARMV7BINDIR)/netapi/test/synchtest2 
 
 api_clean:
-       rm -rf  $(NETAPI_LIB_DIR)/*.a 
-       rm -rf ../../src/*.o
+       rm -f  $(ARMV7LIBDIR)/libnetapi.a
+       rm -rf $(ARMV7OBJDIR)/netapi/lib/*.o
 
 clean: 
-       rm -f ../*.o
-       rm -f ../*.a
-       rm -f net_test synchtest synchtest2
+       rm -f $(ARMV7OBJDIR)/netapi/test/*.o
+       rm -f $(ARMV7LIBDIR)/libnetapi.a
+       rm -f $(ARMV7BINDIR)/netapi/test/net_test $(ARMV7BINDIR)/netapi/test/synchtest $(ARMV7BINDIR)/netapi/test/synchtest2
 
 
-%.o: %.c
+$(ARMV7OBJDIR)/netapi/test/%.o:$(NETAPI_INC_DIR)/test/%.c $(ARMV7OBJDIR)/netapi/test/.created
+       @echo compiling $< ...
        $(CC)  -c  $(CFLAGS)  $<  -o $@
 
-$(NETAPI_LIB_DIR)/ti.runtime.netapi.aearmv7.a:
+$(ARMV7OBJDIR)/netapi/test/.created:
+       @mkdir -p $(ARMV7OBJDIR)/netapi/test/
+       @touch $(ARMV7OBJDIR)/netapi/test/.created
+
+$(ARMV7BINDIR)/netapi/test/.created:
+       @mkdir -p $(ARMV7BINDIR)/netapi/test/
+       @touch $(ARMV7BINDIR)/netapi/test/.created
+
+$(ARMV7LIBDIR)/libnetapi.a:
        make -C $(NETAPI_BUILD_DIR) 
 
-net_test:  $(NT_OBJS) $(TRIE_OBJS) $(NETAPI_LIB_DIR)/ti.runtime.netapi.aearmv7.a
-       $(CC) $(LDFLAGS)  $(NT_OBJS) $(TRIE_OBJS) $(NETAPI_LIB_DIR)/ti.runtime.netapi.aearmv7.a $(PKTLIB_LIB) $(QMSS_LIB) $(CPPI_LIB) $(NWAL_LIB) $(PA_LIB)  -o net_test
+$(ARMV7BINDIR)/netapi/test/net_test:  $(NT_OBJS) $(TRIE_OBJS) $(ARMV7LIBDIR)/libnetapi.a
+       $(CC) $(LDFLAGS)  $(NT_OBJS) $(TRIE_OBJS) $(INTERNALLINKDEFS)  -o $(ARMV7BINDIR)/netapi/test/net_test
+
 
-        
-synchtest: ../synchtest.o
-       $(CC) $(LDFLAGS) ../synchtest.o -o synchtest
+$(ARMV7BINDIR)/netapi/test/synchtest: $(ARMV7OBJDIR)/netapi/test/synchtest.o
+       $(CC) $(LDFLAGS) $(ARMV7OBJDIR)/netapi/test/synchtest.o -o $(ARMV7BINDIR)/netapi/test/synchtest
 
-synchtest2: ../synchtest2.o
-       $(CC) $(LDFLAGS) ../synchtest2.o -o synchtest2 -lpthread
+$(ARMV7BINDIR)/netapi/test/synchtest2: $(ARMV7OBJDIR)/netapi/test/synchtest2.o
+       $(CC) $(LDFLAGS) $(ARMV7OBJDIR)/netapi/test/synchtest2.o -o $(ARMV7BINDIR)/netapi/test/synchtest2 -lpthread