Makefile 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. VPATH=cybootloaderutils ../SCSI2SD/src
  2. CPPFLAGS = -I cybootloaderutils -I hidapi/hidapi -I wxWidgets/include -I ../include -Ilibzipper-1.0.3 -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. TARGET ?= $(shell uname -s)
  7. ifeq ($(TARGET),Win32)
  8. VPATH += hidapi/windows
  9. LDFLAGS += -static -mconsole -mwindows -lsetupapi
  10. BUILD = build/windows/32bit
  11. CC=i686-w64-mingw32-gcc
  12. CXX=i686-w64-mingw32-g++
  13. EXE=.exe
  14. WX_CONFIG=--host=i686-w64-mingw32 --enable-monolithic --enable-stl --disable-shared
  15. endif
  16. ifeq ($(TARGET),Win64)
  17. VPATH += hidapi/windows
  18. LDFLAGS += -static -mconsole -mwindows -lsetupapi
  19. BUILD = build/windows/64bit
  20. CC=x86_64-w64-mingw32-gcc
  21. CXX=x86_64-w64-mingw32-g++
  22. EXE=.exe
  23. WX_CONFIG=--host=x86_64-w64-mingw32 --enable-monolithic --enable-stl --disable-shared
  24. endif
  25. ifeq ($(TARGET),Linux)
  26. VPATH += hidapi/linux
  27. LDFLAGS += -ludev
  28. BUILD = build/linux
  29. WX_CONFIG=--enable-monolithic --enable-stl
  30. endif
  31. ifeq ($(TARGET),Darwin)
  32. # Should match OSX
  33. VPATH += hidapi-mac
  34. LDFLAGS += -framework IOKit -framework CoreFoundation
  35. CFLAGS += -mmacosx-version-min=10.7
  36. CXXFLAGS += -stdlib=libc++ -mmacosx-version-min=10.7
  37. CC=clang
  38. CXX=clang++
  39. BUILD=build/mac
  40. WX_CONFIG=--enable-monolithic --enable-stl --disable-shared
  41. endif
  42. all: $(BUILD)/scsi2sd-util$(EXE)
  43. CYAPI = \
  44. $(BUILD)/cybtldr_api2.o \
  45. $(BUILD)/cybtldr_api.o \
  46. $(BUILD)/cybtldr_command.o \
  47. $(BUILD)/cybtldr_parse.o \
  48. HIDAPI = \
  49. $(BUILD)/hid.o \
  50. OBJ = \
  51. $(CYAPI) $(HIDAPI) \
  52. $(BUILD)/scsi2sd-util.o \
  53. $(BUILD)/ConfigUtil.o \
  54. $(BUILD)/Firmware.o \
  55. $(BUILD)/TargetPanel.o \
  56. $(BUILD)/SCSI2SD_Bootloader.o \
  57. $(BUILD)/SCSI2SD_HID.o \
  58. $(BUILD)/hidpacket.o \
  59. $(OBJ): $(BUILD)/zlib/buildstamp
  60. $(BUILD)/zlib/buildstamp:
  61. mkdir -p $(dir $@)
  62. ( \
  63. cd $(dir $@) && \
  64. cp -a $(CURDIR)/zlib-1.2.8/* . && \
  65. ./configure --static && \
  66. $(MAKE) \
  67. ) && \
  68. touch $@
  69. $(OBJ): $(BUILD)/wx.buildstamp
  70. $(BUILD)/wx.buildstamp: $(BUILD)/zlib/buildstamp
  71. mkdir -p $(dir $@)
  72. ( \
  73. cd $(BUILD) && \
  74. $(CURDIR)/wxWidgets/configure $(WX_CONFIG) CPPFLAGS=-I$(BUILD)/zlib LDFLAGS=-I$(BUILD)/zlib && \
  75. $(MAKE) \
  76. ) && \
  77. touch $@
  78. $(OBJ): $(BUILD)/libzipper/buildstamp
  79. $(BUILD)/libzipper/buildstamp:
  80. mkdir -p $(dir $@)
  81. ( \
  82. cd $(dir $@) && \
  83. $(CURDIR)/libzipper-1.0.3/configure --disable-shared --enable-static && \
  84. $(MAKE) \
  85. ) && \
  86. touch $@
  87. $(BUILD)/%.o: %.c
  88. mkdir -p $(dir $@)
  89. $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@
  90. $(BUILD)/%.o: %.cc
  91. mkdir -p $(dir $@)
  92. $(CXX) $(CPPFLAGS) $(CXXFLAGS) `$(BUILD)/wx-config --cxxflags` $< -c -o $@
  93. $(BUILD)/scsi2sd-util$(EXE): $(OBJ)
  94. mkdir -p $(dir $@)
  95. $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) `$(BUILD)/wx-config --libs` -o $@
  96. clean:
  97. rm $(BUILD)/scsi2sd-util$(EXE) $(OBJ) $(BUILD)/libzipper/buildstamp