Makefile 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. VPATH=cybootloaderutils ../SCSI2SD/src
  2. CPPFLAGS = -I cybootloaderutils -I hidapi/hidapi -I ../include -Ilibzipper-1.0.4 -I$(BUILD)/zlib
  3. CFLAGS += -Wall -Wno-pointer-sign -O2 -g
  4. CXXFLAGS += -Wall -O2 -g -std=c++0x
  5. LDFLAGS += -L$(BUILD)/libzipper/.libs -lzipper -L$(BUILD)/zlib -lz
  6. LIBZIPPER_CONFIG = --disable-shared LDFLAGS="-L../zlib" CPPFLAGS="-I../zlib"
  7. # wxWidgets 3.0.2 uses broken Webkit headers under OSX Yosemeti
  8. # liblzma not available on OSX 10.7
  9. WX_CONFIG=--disable-webkit --disable-webviewwebkit \
  10. --without-libtiff --without-libjbig --without-liblzma --without-opengl \
  11. --enable-monolithic --enable-stl --disable-shared
  12. TARGET ?= $(shell uname -s)
  13. ifeq ($(TARGET),Win32)
  14. VPATH += hidapi/windows
  15. LDFLAGS += -static -mconsole -mwindows -lsetupapi
  16. BUILD = build/windows/32bit
  17. CC=i686-w64-mingw32-gcc
  18. CXX=i686-w64-mingw32-g++
  19. LIBZIPPER_CONFIG+=--host=i686-w64-mingw32
  20. EXE=.exe
  21. WX_CONFIG+=--host=i686-w64-mingw32
  22. endif
  23. ifeq ($(TARGET),Win64)
  24. VPATH += hidapi/windows
  25. LDFLAGS += -static -mconsole -mwindows -lsetupapi
  26. BUILD = build/windows/64bit
  27. CC=x86_64-w64-mingw32-gcc
  28. CXX=x86_64-w64-mingw32-g++
  29. LIBZIPPER_CONFIG+=--host=x86_64-w64-mingw32
  30. EXE=.exe
  31. WX_CONFIG+=--host=x86_64-w64-mingw32
  32. endif
  33. ifeq ($(TARGET),Linux)
  34. VPATH += hidapi/linux
  35. LDFLAGS += -ludev
  36. BUILD = build/linux
  37. endif
  38. ifeq ($(TARGET),Darwin)
  39. # Should match OSX
  40. VPATH += hidapi-mac
  41. LDFLAGS += -framework IOKit -framework CoreFoundation
  42. CC=clang -mmacosx-version-min=10.7
  43. CXX=clang++ -stdlib=libc++ -mmacosx-version-min=10.7
  44. WX_CONFIG += --with-macosx-version-min=10.7
  45. BUILD=build/mac
  46. endif
  47. export CC CXX
  48. all: $(BUILD)/scsi2sd-util$(EXE) $(BUILD)/scsi2sd-monitor$(EXE)
  49. CYAPI = \
  50. $(BUILD)/cybtldr_api2.o \
  51. $(BUILD)/cybtldr_api.o \
  52. $(BUILD)/cybtldr_command.o \
  53. $(BUILD)/cybtldr_parse.o \
  54. HIDAPI = \
  55. $(BUILD)/hid.o \
  56. OBJ = \
  57. $(CYAPI) $(HIDAPI) \
  58. $(BUILD)/ConfigUtil.o \
  59. $(BUILD)/Firmware.o \
  60. $(BUILD)/TargetPanel.o \
  61. $(BUILD)/SCSI2SD_Bootloader.o \
  62. $(BUILD)/SCSI2SD_HID.o \
  63. $(BUILD)/hidpacket.o \
  64. EXEOBJ = \
  65. $(BUILD)/scsi2sd-util.o \
  66. $(BUILD)/scsi2sd-monitor.o \
  67. $(OBJ): $(BUILD)/zlib/buildstamp
  68. $(EXEOBJ): $(BUILD)/zlib/buildstamp
  69. $(BUILD)/zlib/buildstamp:
  70. mkdir -p $(dir $@)
  71. ( \
  72. cd $(dir $@) && \
  73. cp -a $(CURDIR)/zlib-1.2.8/* . && \
  74. ./configure --static && \
  75. $(MAKE) \
  76. ) && \
  77. touch $@
  78. $(OBJ): $(BUILD)/wx.buildstamp
  79. $(EXEOBJ): $(BUILD)/wx.buildstamp
  80. $(BUILD)/wx.buildstamp: $(BUILD)/zlib/buildstamp
  81. mkdir -p $(dir $@)
  82. ( \
  83. cd $(BUILD) && \
  84. $(CURDIR)/wxWidgets/configure $(WX_CONFIG) CPPFLAGS=-I../zlib LDFLAGS=-I../zlib && \
  85. $(MAKE) \
  86. ) && \
  87. touch $@
  88. $(OBJ): $(BUILD)/libzipper/buildstamp
  89. $(EXEOBJ): $(BUILD)/libzipper/buildstamp
  90. $(BUILD)/libzipper/buildstamp: $(BUILD)/zlib/buildstamp
  91. mkdir -p $(dir $@)
  92. ( \
  93. cd $(dir $@) && \
  94. $(CURDIR)/libzipper-1.0.4/configure ${LIBZIPPER_CONFIG} --disable-shared --enable-static && \
  95. $(MAKE) libzipper.la \
  96. ) && \
  97. touch $@
  98. $(BUILD)/%.o: %.c
  99. mkdir -p $(dir $@)
  100. $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@
  101. $(BUILD)/%.o: %.cc
  102. mkdir -p $(dir $@)
  103. $(CXX) $(CPPFLAGS) $(CXXFLAGS) `$(BUILD)/wx-config --cxxflags` $< -c -o $@
  104. $(BUILD)/scsi2sd-util$(EXE): $(OBJ) $(BUILD)/scsi2sd-util.o
  105. mkdir -p $(dir $@)
  106. $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) `$(BUILD)/wx-config --libs` -o $@
  107. $(BUILD)/scsi2sd-monitor$(EXE): $(OBJ) $(BUILD)/scsi2sd-monitor.o
  108. mkdir -p $(dir $@)
  109. $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) `$(BUILD)/wx-config --libs` -o $@
  110. clean:
  111. rm $(BUILD)/scsi2sd-util$(EXE) $(OBJ) $(BUILD)/libzipper/buildstamp