Fix utility Makefiles to output Windows binaries using mingw

This commit is contained in:
Michael McMaster 2014-07-14 14:45:05 +10:00
parent 0140bd9125
commit 2cb04473ba
13 changed files with 125 additions and 95 deletions

View File

@ -315,7 +315,7 @@ const uint8 cy_bootloader[] = {
0xFFu, 0xF7u, 0xD4u, 0xFDu, 0x21u, 0x78u, 0x01u, 0xF0u,
0xC0u, 0x02u, 0x40u, 0x2Au, 0x00u, 0xD0u, 0x18u, 0xB1u,
0x00u, 0x20u, 0x20u, 0x70u, 0xFFu, 0xF7u, 0x0Cu, 0xFEu,
0x05u, 0x20u, 0xFFu, 0xF7u, 0x09u, 0xFEu, 0x80u, 0x20u,
0x14u, 0x20u, 0xFFu, 0xF7u, 0x09u, 0xFEu, 0x80u, 0x20u,
0x20u, 0x70u, 0x00u, 0xF0u, 0xE7u, 0xF8u, 0x48u, 0xB0u,
0x10u, 0xBDu, 0x00u, 0xBFu, 0x0Cu, 0xC1u, 0xFFu, 0x1Fu,
0xFAu, 0x46u, 0x00u, 0x40u, 0x08u, 0xB5u, 0x0Au, 0x4Bu,
@ -1053,7 +1053,7 @@ const uint8 cy_bootloader[] = {
0x10u, 0xBDu, 0x82u, 0x18u, 0x03u, 0x46u, 0x93u, 0x42u,
0x02u, 0xD0u, 0x03u, 0xF8u, 0x01u, 0x1Bu, 0xFAu, 0xE7u,
0x70u, 0x47u, 0x00u, 0x00u, 0x80u, 0x22u, 0x00u, 0x00u,
0x4Fu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x40u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x10u, 0x51u, 0x00u, 0x40u, 0x20u, 0x00u, 0x50u, 0x51u,
0x00u, 0x40u, 0x10u, 0x00u, 0xC0u, 0x51u, 0x00u, 0x40u,
0x10u, 0x00u, 0x00u, 0x00u, 0x01u, 0x40u, 0x00u, 0x10u,

View File

@ -4,13 +4,29 @@ CPPFLAGS = -I cybootloaderutils -I hidapi/hidapi
CFLAGS += -Wall -Wno-pointer-sign -O2
CXXFLAGS += -Wall -std=c++11 -O2
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
TARGET ?= $(shell uname -s)
ifeq ($(TARGET),Win32)
VPATH += hidapi/windows
LDFLAGS += -mconsole -mwindows -lsetupapi
BUILD = build/windows/32bit
CC=i686-w64-mingw32-gcc
CXX=i686-w64-mingw32-g++
EXE=.exe
endif
ifeq ($(TARGET),Win64)
VPATH += hidapi/windows
LDFLAGS += -mconsole -mwindows -lsetupapi
BUILD = build/windows/64bit
CC=x86_64-w64-mingw32-gcc
CXX=x86_64-w64-mingw32-g++
EXE=.exe
endif
ifeq ($(TARGET),Linux)
VPATH += hidapi/linux
LDFLAGS += -ludev
BUILD=build/linux
BUILD = build/linux
endif
ifeq ($(UNAME_S),Darwin)
ifeq ($(TARGET),Darwin)
# Should match OSX
VPATH += hidapi/mac
LDFLAGS += -framework IOKit -framework CoreFoundation
@ -22,7 +38,7 @@ ifeq ($(UNAME_S),Darwin)
BUILD=build/mac
endif
all: $(BUILD)/bootloaderhost
all: $(BUILD)/bootloaderhost$(EXE)
CYAPI = \
$(BUILD)/cybtldr_api2.o \
@ -50,10 +66,10 @@ $(BUILD)/%.o: %.cc
mkdir -p $(dir $@)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $^ -c -o $@
$(BUILD)/bootloaderhost: $(OBJ)
$(BUILD)/bootloaderhost$(EXE): $(OBJ)
mkdir -p $(dir $@)
$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@
clean:
rm $(BUILD)/bootloaderhost $(OBJ)
rm $(BUILD)/bootloaderhost$(EXE) $(OBJ)

View File

@ -1,25 +0,0 @@
all: build/windows/32bit/bootloaderhost.exe build/windows/64bit/bootloaderhost.exe
CYAPI = \
cybootloaderutils/cybtldr_api2.c \
cybootloaderutils/cybtldr_api.c \
cybootloaderutils/cybtldr_command.c \
cybootloaderutils/cybtldr_parse.c \
CFLAGS += -Wall -Wno-pointer-sign
LDFLAGS=-mconsole -mwindows -lsetupapi
HID_C = hidapi/windows/hid.c
build/windows/32bit/bootloaderhost.exe: main.c $(HID_C) $(CYAPI)
mkdir -p $(dir $@)
i686-w64-mingw32-gcc $(CFLAGS) -I cybootloaderutils -I hidapi/hidapi $^ $(LDFLAGS) -o $@
build/windows/64bit/bootloaderhost.exe: main.c $(HID_C) $(CYAPI)
mkdir -p $(dir $@)
x86_64-w64-mingw32-gcc $(CFLAGS) -I cybootloaderutils -I hidapi/hidapi $^ $(LDFLAGS) -o $@
clean:
rm -r build/windows

View File

@ -0,0 +1,6 @@
#!/bin/sh
make && \
make TARGET=Win32 &&
make TARGET=Win64

View File

@ -4,13 +4,29 @@ CFLAGS += -Wall -Wno-pointer-sign -O2
CXXFLAGS += -Wall -std=c++11 -O2
VPATH += ../bootloaderhost
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
VPATH += ../bootloaderhost/hidapi/linux
LDFLAGS += -ludev
BUILD=build/linux
TARGET ?= $(shell uname -s)
ifeq ($(TARGET),Win32)
VPATH += hidapi/windows
LDFLAGS += -mconsole -mwindows -lsetupapi -lws2_32
BUILD = build/windows/32bit
CC=i686-w64-mingw32-gcc
CXX=i686-w64-mingw32-g++
EXE=.exe
endif
ifeq ($(UNAME_S),Darwin)
ifeq ($(TARGET),Win64)
VPATH += hidapi/windows
LDFLAGS += -mconsole -mwindows -lsetupapi -lws2_32
BUILD = build/windows/64bit
CC=x86_64-w64-mingw32-gcc
CXX=x86_64-w64-mingw32-g++
EXE=.exe
endif
ifeq ($(TARGET),Linux)
VPATH += hidapi/linux
LDFLAGS += -ludev
BUILD = build/linux
endif
ifeq ($(TARGET),Darwin)
# Should match OSX
VPATH += ../bootloaderhost/hidapi/mac
LDFLAGS += -framework IOKit -framework CoreFoundation
@ -22,7 +38,7 @@ ifeq ($(UNAME_S),Darwin)
BUILD=build/mac
endif
all: $(BUILD)/scsi2sd-config
all: $(BUILD)/scsi2sd-config$(EXE)
HIDAPI = \
$(BUILD)/hid.o \
@ -40,9 +56,9 @@ $(BUILD)/%.o: %.cc
mkdir -p $(dir $@)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $^ -c -o $@
$(BUILD)/scsi2sd-config: $(OBJ)
$(BUILD)/scsi2sd-config$(EXE): $(OBJ)
mkdir -p $(dir $@)
$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@
clean:
rm $(BUILD)/scsi2sd-config $(OBJ)
rm $(BUILD)/scsi2sd-config$(EXE) $(OBJ)

View File

@ -1,19 +0,0 @@
all: build/windows/32bit/scsi2sd-config.exe build/windows/64bit/scsi2sd-config.exe
CFLAGS += -Wall
LDFLAGS=-mconsole -mwindows -lsetupapi -lws2_32
HID_C = ../bootloaderhost/hidapi/windows/hid.c
build/windows/32bit/scsi2sd-config.exe: main.c $(HID_C)
mkdir -p $(dir $@)
i686-w64-mingw32-gcc $(CFLAGS) -I ../bootloaderhost/hidapi/hidapi $^ $(LDFLAGS) -o $@
build/windows/64bit/scsi2sd-config.exe: main.c $(HID_C)
mkdir -p $(dir $@)
x86_64-w64-mingw32-gcc $(CFLAGS) -I ../bootloaderhost/hidapi/hidapi $^ $(LDFLAGS) -o $@
clean:
rm -r build/windows

View File

@ -0,0 +1,6 @@
#!/bin/sh
make && \
make TARGET=Win32 &&
make TARGET=Win64

View File

@ -22,8 +22,11 @@
#include <memory>
#include <sstream>
#include <getopt.h>
// Request extended stdio format macros.
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#include <getopt.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
@ -31,7 +34,7 @@
#include <unistd.h>
// htonl/ntohl includes.
#ifdef WIN32
#ifdef _WIN32
#include <winsock2.h>
#else
#include <arpa/inet.h>

View File

@ -1,24 +1,64 @@
all: build/scsi2sd-debug
CFLAGS += -Wall
CPPFLAGS = -I ../bootloaderhost/hidapi/hidapi -I ../bootloaderhost
CFLAGS += -Wall -Wno-pointer-sign -O2
CXXFLAGS += -Wall -std=c++11 -O2
VPATH += ../bootloaderhost
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
HID_C = ../bootloaderhost/hidapi/linux/hid.c
TARGET ?= $(shell uname -s)
ifeq ($(TARGET),Win32)
VPATH += hidapi/windows
LDFLAGS += -mconsole -mwindows -lsetupapi -lws2_32
BUILD = build/windows/32bit
CC=i686-w64-mingw32-gcc
CXX=i686-w64-mingw32-g++
EXE=.exe
endif
ifeq ($(TARGET),Win64)
VPATH += hidapi/windows
LDFLAGS += -mconsole -mwindows -lsetupapi -lws2_32
BUILD = build/windows/64bit
CC=x86_64-w64-mingw32-gcc
CXX=x86_64-w64-mingw32-g++
EXE=.exe
endif
ifeq ($(TARGET),Linux)
VPATH += hidapi/linux
LDFLAGS += -ludev
BUILD = build/linux
endif
ifeq ($(UNAME_S),Darwin)
ifeq ($(TARGET),Darwin)
# Should match OSX
HID_C = ../bootloaderhost/hidapi/mac/hid.c
VPATH += ../bootloaderhost/hidapi/mac
LDFLAGS += -framework IOKit -framework CoreFoundation
CFLAGS += -mmacosx-version-min=10.5 -arch x86_64 -arch i386 -arch ppc -isysroot /Xcode3.1.4/SDKs/MacOSX10.5.sdk
CPPFLAGS += -isysroot /Xcode3.1.4/SDKs/MacOSX10.5.sdk
CFLAGS += -mmacosx-version-min=10.5 -arch x86_64 -arch i386 -arch ppc
CXXFLAGS += -mmacosx-version-min=10.5 -arch x86_64 -arch i386 -arch ppc
CC=/Xcode3.1.4/usr/bin/gcc
CXX=/Xcode3.1.4/usr/bin/g++
BUILD=build/mac
endif
all: $(BUILD)/scsi2sd-debug$(EXE)
build/scsi2sd-debug: main.c $(HID_C) $(CYAPI)
HIDAPI = \
$(BUILD)/hid.o \
OBJ = \
$(HIDAPI) \
$(BUILD)/scsi2sd-debug.o \
$(BUILD)/SCSI2SD_HID.o \
$(BUILD)/%.o: %.c
mkdir -p $(dir $@)
$(CC) $(CFLAGS) -I ../bootloaderhost/hidapi/hidapi $^ $(LDFLAGS) -o $@
$(CC) $(CPPFLAGS) $(CFLAGS) $^ -c -o $@
$(BUILD)/%.o: %.cc
mkdir -p $(dir $@)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $^ -c -o $@
$(BUILD)/scsi2sd-debug$(EXE): $(OBJ)
mkdir -p $(dir $@)
$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@
clean:
rm build/scsi2sd-debug
rm $(BUILD)/scsi2sd-debug$(EXE) $(OBJ)

View File

@ -1,19 +0,0 @@
all: build/windows/32bit/scsi2sd-debug.exe build/windows/64bit/scsi2sd-debug.exe
CFLAGS += -Wall
LDFLAGS=-mconsole -mwindows -lsetupapi -lws2_32
HID_C = ../bootloaderhost/hidapi/windows/hid.c
build/windows/32bit/scsi2sd-debug.exe: main.c $(HID_C)
mkdir -p $(dir $@)
i686-w64-mingw32-gcc $(CFLAGS) -I ../bootloaderhost/hidapi/hidapi $^ $(LDFLAGS) -o $@
build/windows/64bit/scsi2sd-debug.exe: main.c $(HID_C)
mkdir -p $(dir $@)
x86_64-w64-mingw32-gcc $(CFLAGS) -I ../bootloaderhost/hidapi/hidapi $^ $(LDFLAGS) -o $@
clean:
rm -r build/windows

View File

@ -0,0 +1,6 @@
#!/bin/sh
make && \
make TARGET=Win32 &&
make TARGET=Win64

View File

@ -24,7 +24,7 @@
#include <unistd.h>
// htonl/ntohl includes.
#ifdef WIN32
#ifdef _WIN32
#include <winsock2.h>
#else
#include <arpa/inet.h>