浏览代码

gfalibs with debug and release version

Reinhard Russinger 7 年之前
父节点
当前提交
c4e666ec50

+ 13 - 0
GfA-buildroot-CrossCompile_export_CC_and_CXX.patch

@@ -0,0 +1,13 @@
+diff --git a/CrossCompile.sh b/CrossCompile.sh
+index 0d659414b4..fab5738410 100755
+--- a/CrossCompile.sh
++++ b/CrossCompile.sh
+@@ -23,6 +23,8 @@ export KERNELDIR=`pwd`/output/build/linux-7f280334068b7c875ade51f8f3921ab311f0c8
+ export BB_KERNEL_SOURCES=$KERNELDIR
+ export SYSROOT=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`/usr/arm-buildroot-linux-gnueabihf/sysroot
+ export CC_FULLPATH="${SYSROOTBIN}${CROSS_COMPILE}"
++export CC=${CROSS_COMPILE}gcc
++export CXX=${CROSS_COMPILE}g++
+ #--- gnupru
+ export PASM=pasm
+ ##export PSYSROOT=/home/ru/pru/pru-gcc/bin

+ 1 - 0
MakeBuildrootEnv.sh

@@ -20,6 +20,7 @@ patch -p1 < ../GfA/GfA-buildroot_qt57-qt5quickcontrols2_mk.patch
 patch -p1 < ../GfA/GfA-buildroot_SetRightDisplayResolution_OnUpdate.patch
 patch -p1 < ../GfA/GfA-buildroot_SetRightDisplayResolution_OnUpdate_add5_7inch_display.patch
 patch -p1 < ../GfA/GfA-buildroot-add-plugins-libraries-change-crosscompile-command.patch
+patch -p1 < ../GfA/GfA-buildroot-CrossCompile_export_CC_and_CXX.patch
 #
 chmod a+x *.sh
 cp ../GfA/configs/* ./configs

+ 9 - 2
package/libgfaipc/libgfaipc.mk

@@ -6,19 +6,26 @@ LIBGFAIPC_INSTALL_TARGET = YES
 
 define LIBGFAIPC_BUILD_CMDS
 	$(MAKE) CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" LD="$(TARGET_LD)" -C $(@D) all
+	$(MAKE) CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" LD="$(TARGET_LD)" -C $(@D) DEBUG=1 all
 endef
 
 define LIBGFAIPC_INSTALL_STAGING_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/libgfaipc.so.1.1.0 $(STAGING_DIR)/usr/lib/libgfaipc.so.1.1.0
+	$(INSTALL) -D -m 0755 $(@D)/Release/libgfaipc.so.1.1.0 $(STAGING_DIR)/usr/lib/libgfaipc.so.1.1.0
+	$(INSTALL) -D -m 0755 $(@D)/Debug/libgfaipcd.so.1.1.0 $(STAGING_DIR)/usr/lib/libgfaipcd.so.1.1.0
 	$(INSTALL) -D -m 0755 $(@D)/gfaipc.h $(STAGING_DIR)/usr/include/gfaipc.h
 	ln -sfn libgfaipc.so.1.1.0 $(STAGING_DIR)/usr/lib/libgfaipc.so.1
 	ln -sfn libgfaipc.so.1 $(STAGING_DIR)/usr/lib/libgfaipc.so
+	ln -sfn libgfaipcd.so.1.1.0 $(STAGING_DIR)/usr/lib/libgfaipcd.so.1
+	ln -sfn libgfaipcd.so.1 $(STAGING_DIR)/usr/lib/libgfaipcd.so
 endef
 
 define LIBGFAIPC_INSTALL_TARGET_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/libgfaipc.so.1.1.0 $(TARGET_DIR)/usr/lib/libgfaipc.so.1.1.0
+	$(INSTALL) -D -m 0755 $(@D)/Release/libgfaipc.so.1.1.0 $(TARGET_DIR)/usr/lib/libgfaipc.so.1.1.0
+	$(INSTALL) -D -m 0755 $(@D)/Debug/libgfaipcd.so.1.1.0 $(TARGET_DIR)/usr/lib/libgfaipcd.so.1.1.0
 	ln -sfn libgfaipc.so.1.1.0 $(TARGET_DIR)/usr/lib/libgfaipc.so.1
 	ln -sfn libgfaipc.so.1 $(TARGET_DIR)/usr/lib/libgfaipc.so
+	ln -sfn libgfaipcd.so.1.1.0 $(TARGET_DIR)/usr/lib/libgfaipcd.so.1
+	ln -sfn libgfaipcd.so.1 $(TARGET_DIR)/usr/lib/libgfaipcd.so
 endef
 
 $(eval $(generic-package))

+ 25 - 22
package/libgfaipc/src/Makefile

@@ -1,13 +1,18 @@
-# Change these if necessary
+# (c) R. Russinger GfA 2017,... LGPL v3
+#
+# Makefile for GfA Libraries
+# call with make DEBUG=1 for Debug output
+# output is held in Release or Debug subfolder (folders are created automaticalle)
+# make Variable for foldernames := BINDIR
+#
+#
 DEBUG ?= 0
         
 _LIBBASENAME=gfaipc
 LIBFILENAME=lib$(LIBBASENAME).so.1.1.0
 
-#CC = $(CROSS_COMPILE)gcc
-#CXX = $(CROSS_COMPILE)c++ 
-CFLAGS = -pthread -fPIC -Wall -Wno-unused -Wno-unused-label -Wformat -Wuninitialized -Wundef -Wcast-qual -Wwrite-strings -fabi-version=2 -fno-omit-frame-pointer
-CXXFLAGS = -pthread -fPIC -Wall -Wno-unused -Wno-unused-label -Wformat -Wuninitialized -Wundef -Wcast-qual -Wwrite-strings -std=c++11 -fabi-version=2 -fno-omit-frame-pointer
+CFLAGS = -c -pthread -fPIC -Wall -Wno-unused -Wno-unused-label -Wformat -Wuninitialized -Wundef -Wcast-qual -Wwrite-strings -fabi-version=2 -fno-omit-frame-pointer
+CXXFLAGS = -c -pthread -fPIC -Wall -Wno-unused -Wno-unused-label -Wformat -Wuninitialized -Wundef -Wcast-qual -Wwrite-strings -std=c++11 -fabi-version=2 -fno-omit-frame-pointer
 LDFLAGS = -fPIC -shared -L. -lc -pthread
 
 ifeq ($(DEBUG), 1)
@@ -15,41 +20,39 @@ ifeq ($(DEBUG), 1)
 	CXXFLAGS += -g
 	LDFLAGS += -g
 	LIBBASENAME = $(_LIBBASENAME)d
+	BINDIR=Debug
 else
 	CFLAGS += -O3
 	CXXFLAGS += -O3
 	LDFLAGS += -O3
 	LIBBASENAME = $(_LIBBASENAME)
+	BINDIR=Release
 endif
 
+$(shell mkdir -p $(BINDIR) > /dev/null)
 
-
-
-RM = rm -f  # rm command
 TARGET_LIB = $(LIBFILENAME) # target lib
 
 CSRCS = uuid.c  # source files
 CXXSRCS = sema.cpp mutex.cpp locmtx.cpp shm.cpp shmrot.cpp ipcshm.cpp # source files
-COBJS = $(CSRCS:.c=.o)
-CXXOBJS = $(CXXSRCS:.cpp=.o)
+
+COBJS = $(CSRCS:%.c=$(BINDIR)/%.o)
+CXXOBJS = $(CXXSRCS:%.cpp=$(BINDIR)/%.o)
 
 .PHONY: all
-all: ${TARGET_LIB}
+all: $(BINDIR)/${TARGET_LIB}
 
-$(TARGET_LIB): $(COBJS) $(CXXOBJS)
+$(BINDIR)/$(TARGET_LIB): $(COBJS) $(CXXOBJS)
 	$(CC) ${LDFLAGS} -o $@ $^
+	
+$(CSRCS:%.c=$(BINDIR)/%.d):$(BINDIR)/%.d:%.c
+	$(CC) $(CFLAGS) -MP -MT $(basename $@).o -MMD -MF $@ -o $(basename $@).o $<
 
-$(CSRCS:.c=.d):%.d:%.c
-	$(CC) $(CFLAGS) -MM $< >$@
-
-$(CXXSRCS:.cpp=.dpp):%.dpp:%.cpp
-	$(CXX) $(CXXFLAGS) -MM $< >$@
+$(CXXSRCS:%.cpp=$(BINDIR)/%.dpp):$(BINDIR)/%.dpp:%.cpp
+	$(CXX) $(CXXFLAGS) -MP -MT $(basename $@).o -MMD -MF $@ -o $(basename $@).o $<
 
-include $(CSRCS:.c=.d) $(CXXSRCS:.cpp=.dpp)
+include $(CSRCS:%.c=$(BINDIR)/%.d) $(CXXSRCS:%.cpp=$(BINDIR)/%.dpp)
 
 .PHONY: clean
 clean:
-	$(RM) $(TARGET_LIB) 
-	$(RM) *.o
-	$(RM) *.d
-	$(RM) *.dpp
+	@rm -rf $(BINDIR)

+ 9 - 2
package/libgfatimer/libgfatimer.mk

@@ -6,19 +6,26 @@ LIBGFATIMER_INSTALL_TARGET = YES
 
 define LIBGFATIMER_BUILD_CMDS
 	$(MAKE) CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" LD="$(TARGET_LD)" -C $(@D) all
+	$(MAKE) CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" LD="$(TARGET_LD)" -C $(@D) DEBUG=1 all
 endef
 
 define LIBGFATIMER_INSTALL_STAGING_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/libgfatimer.so.1.0.0 $(STAGING_DIR)/usr/lib/libgfatimer.so.1.0.0
+	$(INSTALL) -D -m 0755 $(@D)/Release/libgfatimer.so.1.0.0 $(STAGING_DIR)/usr/lib/libgfatimer.so.1.0.0
+	$(INSTALL) -D -m 0755 $(@D)/Debug/libgfatimerd.so.1.0.0 $(STAGING_DIR)/usr/lib/libgfatimerd.so.1.0.0
 	$(INSTALL) -D -m 0755 $(@D)/gfatimer.h $(STAGING_DIR)/usr/include/gfatimer.h
 	ln -sfn libgfatimer.so.1.0.0 $(STAGING_DIR)/usr/lib/libgfatimer.so.1
 	ln -sfn libgfatimer.so.1 $(STAGING_DIR)/usr/lib/libgfatimer.so
+	ln -sfn libgfatimerd.so.1.0.0 $(STAGING_DIR)/usr/lib/libgfatimerd.so.1
+	ln -sfn libgfatimerd.so.1 $(STAGING_DIR)/usr/lib/libgfatimerd.so
 endef
 
 define LIBGFATIMER_INSTALL_TARGET_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/libgfatimer.so.1.0.0 $(TARGET_DIR)/usr/lib/libgfatimer.so.1.0.0
+	$(INSTALL) -D -m 0755 $(@D)/Release/libgfatimer.so.1.0.0 $(TARGET_DIR)/usr/lib/libgfatimer.so.1.0.0
+	$(INSTALL) -D -m 0755 $(@D)/Debug/libgfatimerd.so.1.0.0 $(TARGET_DIR)/usr/lib/libgfatimerd.so.1.0.0
 	ln -sfn libgfatimer.so.1.0.0 $(TARGET_DIR)/usr/lib/libgfatimer.so.1
 	ln -sfn libgfatimer.so.1 $(TARGET_DIR)/usr/lib/libgfatimer.so
+	ln -sfn libgfatimerd.so.1.0.0 $(TARGET_DIR)/usr/lib/libgfatimerd.so.1
+	ln -sfn libgfatimerd.so.1 $(TARGET_DIR)/usr/lib/libgfatimerd.so
 endef
 
 $(eval $(generic-package))

+ 27 - 21
package/libgfatimer/src/Makefile

@@ -1,13 +1,18 @@
-# Change these if necessary
+# (c) R. Russinger GfA 2017,... LGPL v3
+#
+# Makefile for GfA Libraries
+# call with make DEBUG=1 for Debug output
+# output is held in Release or Debug subfolder (folders are created automaticalle)
+# make Variable for foldernames := BINDIR
+#
+#
 DEBUG ?= 0
         
 _LIBBASENAME=gfatimer
 LIBFILENAME=lib$(LIBBASENAME).so.1.0.0
 
-#CC = $(CROSS_COMPILE)gcc
-#CXX = $(CROSS_COMPILE)c++ 
-CFLAGS = -pthread -fPIC -Wall -Wno-unused -Wno-unused-label -Wformat -Wuninitialized -Wundef -Wcast-qual -Wwrite-strings -fabi-version=2 -fno-omit-frame-pointer
-CXXFLAGS = -pthread -fPIC -Wall -Wno-unused -Wno-unused-label -Wformat -Wuninitialized -Wundef -Wcast-qual -Wwrite-strings -std=c++11 -fabi-version=2 -fno-omit-frame-pointer
+CFLAGS = -c -pthread -fPIC -Wall -Wno-unused -Wno-unused-label -Wformat -Wuninitialized -Wundef -Wcast-qual -Wwrite-strings -fabi-version=2 -fno-omit-frame-pointer
+CXXFLAGS = -c -pthread -fPIC -Wall -Wno-unused -Wno-unused-label -Wformat -Wuninitialized -Wundef -Wcast-qual -Wwrite-strings -std=c++11 -fabi-version=2 -fno-omit-frame-pointer
 LDFLAGS = -fPIC -shared -L. -lc -pthread
 
 ifeq ($(DEBUG), 1)
@@ -15,38 +20,39 @@ ifeq ($(DEBUG), 1)
 	CXXFLAGS += -g
 	LDFLAGS += -g
 	LIBBASENAME = $(_LIBBASENAME)d
+	BINDIR=Debug
 else
 	CFLAGS += -O3
 	CXXFLAGS += -O3
 	LDFLAGS += -O3
 	LIBBASENAME = $(_LIBBASENAME)
+	BINDIR=Release
 endif
 
-RM = rm -f  # rm command
+$(shell mkdir -p $(BINDIR) > /dev/null)
+
 TARGET_LIB = $(LIBFILENAME) # target lib
 
-CSRCS =  # source files
+CSRCS =   # source files
 CXXSRCS = timer.cpp gfatimer.cpp # source files
-COBJS = $(CSRCS:.c=.o)
-CXXOBJS = $(CXXSRCS:.cpp=.o)
+
+COBJS = $(CSRCS:%.c=$(BINDIR)/%.o)
+CXXOBJS = $(CXXSRCS:%.cpp=$(BINDIR)/%.o)
 
 .PHONY: all
-all: ${TARGET_LIB}
+all: $(BINDIR)/${TARGET_LIB}
 
-$(TARGET_LIB): $(COBJS) $(CXXOBJS)
+$(BINDIR)/$(TARGET_LIB): $(COBJS) $(CXXOBJS)
 	$(CC) ${LDFLAGS} -o $@ $^
+	
+$(CSRCS:%.c=$(BINDIR)/%.d):$(BINDIR)/%.d:%.c
+	$(CC) $(CFLAGS) -MP -MT $(basename $@).o -MMD -MF $@ -o $(basename $@).o $<
 
-$(CSRCS:.c=.d):%.d:%.c
-	$(CC) $(CFLAGS) -MM $< >$@
-
-$(CXXSRCS:.cpp=.dpp):%.dpp:%.cpp
-	$(CXX) $(CXXFLAGS) -MM $< >$@
+$(CXXSRCS:%.cpp=$(BINDIR)/%.dpp):$(BINDIR)/%.dpp:%.cpp
+	$(CXX) $(CXXFLAGS) -MP -MT $(basename $@).o -MMD -MF $@ -o $(basename $@).o $<
 
-include $(CSRCS:.c=.d) $(CXXSRCS:.cpp=.dpp)
+include $(CSRCS:%.c=$(BINDIR)/%.d) $(CXXSRCS:%.cpp=$(BINDIR)/%.dpp)
 
 .PHONY: clean
 clean:
-	$(RM) $(TARGET_LIB) 
-	$(RM) *.o
-	$(RM) *.d
-	$(RM) *.dpp
+	@rm -rf $(BINDIR)