Browse Source

Add USE_SYSTEM makefile variable to use system libraries

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Laurent Vivier 10 years ago
parent
commit
19bc3167aa

+ 49 - 6
lib/SCSI2SD/software/scsi2sd-util/Makefile

@@ -1,11 +1,24 @@
 VPATH=cybootloaderutils ../SCSI2SD/src
 VPATH=cybootloaderutils ../SCSI2SD/src
 
 
-CPPFLAGS = -I cybootloaderutils -I hidapi/hidapi -I ../include -Ilibzipper-1.0.4 -I$(BUILD)/zlib
+ifeq ($(USE_SYSTEM), Yes)
+USE_SYSTEM_HIDAPI = Yes
+USE_SYSTEM_ZLIB = Yes
+USE_SYSTEM_WX = Yes
+endif
+
+CPPFLAGS_HIDAPI=$(shell pkg-config hidapi-hidraw --cflags)
+CPPFLAGS_ZLIB=$(shell pkg-config zlib --cflags)
+
+CPPFLAGS = -I cybootloaderutils $(CPPFLAGS_HIDAPI) -I ../include -Ilibzipper-1.0.4 $(CPPFLAGS_ZLIB)
 CFLAGS += -Wall -Wno-pointer-sign -O2 -g
 CFLAGS += -Wall -Wno-pointer-sign -O2 -g
 CXXFLAGS += -Wall -O2 -g -std=c++0x
 CXXFLAGS += -Wall -O2 -g -std=c++0x
-LDFLAGS += -L$(BUILD)/libzipper/.libs -lzipper -L$(BUILD)/zlib -lz
 
 
-LIBZIPPER_CONFIG = --disable-shared LDFLAGS="-L../zlib" CPPFLAGS="-I../zlib"
+LDFLAGS_ZLIB=$(shell pkg-config zlib --libs)
+LDFLAGS_HIDAPI=$(shell pkg-config hidapi-hidraw --libs)
+
+LDFLAGS += -L$(BUILD)/libzipper/.libs -lzipper $(LDFLAGS_ZLIB) $(LDFLAGS_HIDAPI)
+
+LIBZIPPER_CONFIG = --disable-shared LDFLAGS="$(LDFLAGS_ZLIB)" CPPFLAGS="$(CPPFLAGS_ZLIB)"
 
 
 # wxWidgets 3.0.2 uses broken Webkit headers under OSX Yosemeti
 # wxWidgets 3.0.2 uses broken Webkit headers under OSX Yosemeti
 # liblzma not available on OSX 10.7
 # liblzma not available on OSX 10.7
@@ -60,8 +73,10 @@ CYAPI = \
 	$(BUILD)/cybtldr_parse.o \
 	$(BUILD)/cybtldr_parse.o \
 
 
 
 
+ifneq ($(USE_SYSTEM_HIDAPI),Yes)
 HIDAPI = \
 HIDAPI = \
-	$(BUILD)/hid.o \
+	$(BUILD)/hid.o
+endif
 
 
 
 
 OBJ = \
 OBJ = \
@@ -79,6 +94,7 @@ EXEOBJ = \
 
 
 
 
 
 
+ifneq ($(USE_SYSTEM_ZLIB),Yes)
 $(OBJ): $(BUILD)/zlib/buildstamp
 $(OBJ): $(BUILD)/zlib/buildstamp
 $(EXEOBJ): $(BUILD)/zlib/buildstamp
 $(EXEOBJ): $(BUILD)/zlib/buildstamp
 $(BUILD)/zlib/buildstamp:
 $(BUILD)/zlib/buildstamp:
@@ -90,25 +106,40 @@ $(BUILD)/zlib/buildstamp:
 		$(MAKE) \
 		$(MAKE) \
 	) && \
 	) && \
 	touch $@
 	touch $@
+endif
 
 
+ifneq ($(USE_SYSTEM_WX),Yes)
 $(OBJ): $(BUILD)/wx.buildstamp
 $(OBJ): $(BUILD)/wx.buildstamp
 $(EXEOBJ): $(BUILD)/wx.buildstamp
 $(EXEOBJ): $(BUILD)/wx.buildstamp
+ifneq ($(USE_SYSTEM_ZLIB),Yes)
 $(BUILD)/wx.buildstamp: $(BUILD)/zlib/buildstamp
 $(BUILD)/wx.buildstamp: $(BUILD)/zlib/buildstamp
+else
+$(BUILD)/wx.buildstamp:
+endif
 	mkdir -p $(dir $@)
 	mkdir -p $(dir $@)
 	( \
 	( \
 		cd $(BUILD) && \
 		cd $(BUILD) && \
-		$(CURDIR)/wxWidgets/configure $(WX_CONFIG) CPPFLAGS=-I../zlib LDFLAGS=-I../zlib && \
+		$(CURDIR)/wxWidgets/configure $(WX_CONFIG) CPPFLAGS="$(CPPFLAGS_ZLIB)" LDFLAGS="$(LDFLAGS_ZLIB)" && \
 		$(MAKE) \
 		$(MAKE) \
 	) && \
 	) && \
 	touch $@
 	touch $@
+endif
+
+ifneq ($(USE_SYSTEM_ZLIB),Yes)
+LIBZIPPER_STATIC=-enable-static
+endif
 
 
 $(OBJ): $(BUILD)/libzipper/buildstamp
 $(OBJ): $(BUILD)/libzipper/buildstamp
 $(EXEOBJ): $(BUILD)/libzipper/buildstamp
 $(EXEOBJ): $(BUILD)/libzipper/buildstamp
+ifneq ($(USE_SYSTEM_ZLIB),Yes)
 $(BUILD)/libzipper/buildstamp: $(BUILD)/zlib/buildstamp
 $(BUILD)/libzipper/buildstamp: $(BUILD)/zlib/buildstamp
+else
+$(BUILD)/libzipper/buildstamp:
+endif
 	mkdir -p $(dir $@)
 	mkdir -p $(dir $@)
 	( \
 	( \
 		cd $(dir $@) && \
 		cd $(dir $@) && \
-		$(CURDIR)/libzipper-1.0.4/configure ${LIBZIPPER_CONFIG} --disable-shared --enable-static && \
+		$(CURDIR)/libzipper-1.0.4/configure ${LIBZIPPER_CONFIG} --disable-shared $(LIBZIPPER_STATIC) && \
 		$(MAKE) libzipper.la \
 		$(MAKE) libzipper.la \
 	) && \
 	) && \
 	touch $@
 	touch $@
@@ -119,15 +150,27 @@ $(BUILD)/%.o: %.c
 
 
 $(BUILD)/%.o: %.cc
 $(BUILD)/%.o: %.cc
 	mkdir -p $(dir $@)
 	mkdir -p $(dir $@)
+ifneq ($(USE_SYSTEM_WX),Yes)
 	$(CXX) $(CPPFLAGS) $(CXXFLAGS) `$(BUILD)/wx-config --cxxflags` $< -c -o $@
 	$(CXX) $(CPPFLAGS) $(CXXFLAGS) `$(BUILD)/wx-config --cxxflags` $< -c -o $@
+else
+	$(CXX) $(CPPFLAGS) $(CXXFLAGS) `wx-config-3.0 --cxxflags` $< -c -o $@
+endif
 
 
 $(BUILD)/scsi2sd-util$(EXE): $(OBJ) $(BUILD)/scsi2sd-util.o
 $(BUILD)/scsi2sd-util$(EXE): $(OBJ) $(BUILD)/scsi2sd-util.o
 	mkdir -p $(dir $@)
 	mkdir -p $(dir $@)
+ifneq ($(USE_SYSTEM_WX),Yes)
 	$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) `$(BUILD)/wx-config --libs` -o $@
 	$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) `$(BUILD)/wx-config --libs` -o $@
+else
+	$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) `wx-config-3.0 --libs` -o $@
+endif
 
 
 $(BUILD)/scsi2sd-monitor$(EXE): $(OBJ) $(BUILD)/scsi2sd-monitor.o
 $(BUILD)/scsi2sd-monitor$(EXE): $(OBJ) $(BUILD)/scsi2sd-monitor.o
 	mkdir -p $(dir $@)
 	mkdir -p $(dir $@)
+ifneq ($(USE_SYSTEM_WX),Yes)
 	$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) `$(BUILD)/wx-config --libs` -o $@
 	$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) `$(BUILD)/wx-config --libs` -o $@
+else
+	$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) `wx-config-3.0 --libs` -o $@
+endif
 
 
 clean:
 clean:
 	rm $(BUILD)/scsi2sd-util$(EXE) $(OBJ) $(BUILD)/libzipper/buildstamp
 	rm $(BUILD)/scsi2sd-util$(EXE) $(OBJ) $(BUILD)/libzipper/buildstamp

+ 1 - 1
lib/SCSI2SD/software/scsi2sd-util/scsi2sd-util.cc

@@ -431,7 +431,7 @@ private:
 		try
 		try
 		{
 		{
 			std::vector<TargetConfig> configs(
 			std::vector<TargetConfig> configs(
-				ConfigUtil::fromXML(dlg.GetPath()));
+				ConfigUtil::fromXML(std::string(dlg.GetPath())));
 
 
 			size_t i;
 			size_t i;
 			for (i = 0; i < configs.size() && i < myTargets.size(); ++i)
 			for (i = 0; i < configs.size() && i < myTargets.size(); ++i)