Added/improved support for mxe-based win32 cross builds

This commit is contained in:
Clifford Wolf 2016-02-14 13:47:27 +01:00
parent 04e6143457
commit a519d2ab82
14 changed files with 46 additions and 18 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
icestorm-win32.zip
icestorm-win32/

View File

@ -32,5 +32,12 @@ uninstall:
$(MAKE) -C icepll uninstall
$(MAKE) -C icetime uninstall
mxebin: clean
$(MAKE) MXE=1
rm -rf icestorm-win32 && mkdir icestorm-win32
cp icebox/chipdb-*.txt icepack/*.exe iceprog/*.exe icestorm-win32/
cp icemulti/*.exe icepll/*.exe icetime/*.exe icestorm-win32/
zip -r icestorm-win32.zip icestorm-win32/
.PHONY: all clean install uninstall

View File

@ -2,3 +2,8 @@ CXX = clang
CC = $(CXX)
DESTDIR ?=
PREFIX ?= /usr/local
ifeq ($(MXE),1)
EXE = .exe
CXX = /usr/local/src/mxe/usr/bin/i686-pc-mingw32-gcc
endif

1
icemulti/.gitignore vendored
View File

@ -1,3 +1,4 @@
icemulti
icemulti.exe
icemulti.o
icemulti.d

View File

@ -2,9 +2,10 @@ include ../config.mk
LDLIBS = -lm -lstdc++
CXXFLAGS = -MD -O0 -ggdb -Wall -std=c++11
all: icemulti
all: icemulti$(EXE)
icemulti: icemulti.o
icemulti$(EXE): icemulti.o
$(CC) -o $@ $(LDFLAGS) $^ $(LDLIBS)
install: all
mkdir -p $(DESTDIR)$(PREFIX)/bin
@ -15,6 +16,7 @@ uninstall:
clean:
rm -f icemulti
rm -f icemulti.exe
rm -f *.o *.d
-include *.d

View File

@ -20,6 +20,7 @@
#include <memory>
#include <stdio.h>
#include <stdlib.h>
#define log(...) fprintf(stderr, __VA_ARGS__);
#define info(...) do { if (log_level > 0) fprintf(stderr, __VA_ARGS__); } while (0)

1
icepack/.gitignore vendored
View File

@ -1,4 +1,5 @@
icepack
icepack.exe
iceunpack
icepack.o
icepack.d

View File

@ -3,16 +3,17 @@ LDLIBS = -lm -lstdc++
CXXFLAGS = -MD -O0 -ggdb -Wall -std=c++11 -I/usr/local/include
MXEGCC = /usr/local/src/mxe/usr/bin/i686-pc-mingw32-gcc
all: icepack iceunpack
all: icepack$(EXE) iceunpack$(EXE)
icepack: icepack.o
icepack.exe: icepack.cc
$(MXEGCC) -std=c++11 -o icepack.exe -Os icepack.cc -lm -lstdc++
icepack$(EXE): icepack.o
$(CC) -o $@ $(LDFLAGS) $^ $(LDLIBS)
iceunpack: icepack
ln -sf icepack iceunpack
iceunpack.exe:
# no iceunpack.exe, use icepack -u
install: all
mkdir -p $(DESTDIR)$(PREFIX)/bin
cp icepack $(DESTDIR)$(PREFIX)/bin/icepack

1
icepll/.gitignore vendored
View File

@ -1,3 +1,4 @@
icepll
icepll.exe
icepll.o
icepll.d

View File

@ -2,9 +2,10 @@ include ../config.mk
LDLIBS = -lm -lstdc++
CXXFLAGS = -MD -O0 -ggdb -Wall -std=c++11 -I/usr/local/include
all: icepll
all: icepll$(EXE)
icepll: icepll.o
icepll$(EXE): icepll.o
$(CC) -o $@ $(LDFLAGS) $^ $(LDLIBS)
install: all
mkdir -p $(DESTDIR)$(PREFIX)/bin
@ -14,7 +15,9 @@ uninstall:
rm -f $(DESTDIR)$(PREFIX)/bin/icepll
clean:
rm -f icepll *.o *.d
rm -f icepll
rm -f icepll.exe
rm -f *.o *.d
-include *.d

1
iceprog/.gitignore vendored
View File

@ -1,3 +1,4 @@
iceprog
iceprog.exe
iceprog.o
iceprog.d

View File

@ -1,14 +1,15 @@
include ../config.mk
LDLIBS = -L/usr/local/lib -lftdi -lm
CFLAGS = -MD -O0 -ggdb -Wall -std=c99 -I/usr/local/include
MXEGCC = /usr/local/src/mxe/usr/bin/i686-pc-mingw32-gcc
all: iceprog
ifeq ($(MXE),1)
LDLIBS += -lusb
endif
iceprog: iceprog.o
all: iceprog$(EXE)
iceprog.exe: iceprog.c
$(MXEGCC) -std=c99 -o iceprog.exe -Os iceprog.c -lftdi -lusb -lm
iceprog$(EXE): iceprog.o
$(CC) -o $@ $(LDFLAGS) $^ $(LDLIBS)
install: all
mkdir -p $(DESTDIR)$(PREFIX)/bin

1
icetime/.gitignore vendored
View File

@ -1,4 +1,5 @@
icetime
icetime.exe
timings.inc
test[0-9]*
*.d

View File

@ -2,9 +2,10 @@ include ../config.mk
LDLIBS = -lm -lstdc++
CXXFLAGS = -MD -O0 -ggdb -Wall -std=c++11 -I/usr/local/include -DPREFIX='"$(PREFIX)"'
all: icetime
all: icetime$(EXE)
icetime: icetime.o
icetime$(EXE): icetime.o
$(CC) -o $@ $(LDFLAGS) $^ $(LDLIBS)
icetime.o: icetime.cc timings.inc
@ -41,7 +42,7 @@ test: test0 test1 test2 test3 test4 test5 test6 test7 test8 test9
show: show0 show1 show2 show3 show4 show5 show6 show7 show8 show9
clean:
rm -f icetime timings.inc *.o *.d
rm -f icetime icetime.exe timings.inc *.o *.d
rm -rf test[0-9]*
-include *.d