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 icepll uninstall
$(MAKE) -C icetime 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 .PHONY: all clean install uninstall

View File

@ -2,3 +2,8 @@ CXX = clang
CC = $(CXX) CC = $(CXX)
DESTDIR ?= DESTDIR ?=
PREFIX ?= /usr/local 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
icemulti.exe
icemulti.o icemulti.o
icemulti.d icemulti.d

View File

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

View File

@ -20,6 +20,7 @@
#include <memory> #include <memory>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#define log(...) fprintf(stderr, __VA_ARGS__); #define log(...) fprintf(stderr, __VA_ARGS__);
#define info(...) do { if (log_level > 0) fprintf(stderr, __VA_ARGS__); } while (0) #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
icepack.exe
iceunpack iceunpack
icepack.o icepack.o
icepack.d icepack.d

View File

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

1
icepll/.gitignore vendored
View File

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

View File

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

1
iceprog/.gitignore vendored
View File

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

View File

@ -1,14 +1,15 @@
include ../config.mk include ../config.mk
LDLIBS = -L/usr/local/lib -lftdi -lm LDLIBS = -L/usr/local/lib -lftdi -lm
CFLAGS = -MD -O0 -ggdb -Wall -std=c99 -I/usr/local/include 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 iceprog$(EXE): iceprog.o
$(MXEGCC) -std=c99 -o iceprog.exe -Os iceprog.c -lftdi -lusb -lm $(CC) -o $@ $(LDFLAGS) $^ $(LDLIBS)
install: all install: all
mkdir -p $(DESTDIR)$(PREFIX)/bin mkdir -p $(DESTDIR)$(PREFIX)/bin

1
icetime/.gitignore vendored
View File

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

View File

@ -2,9 +2,10 @@ include ../config.mk
LDLIBS = -lm -lstdc++ LDLIBS = -lm -lstdc++
CXXFLAGS = -MD -O0 -ggdb -Wall -std=c++11 -I/usr/local/include -DPREFIX='"$(PREFIX)"' 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 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 show: show0 show1 show2 show3 show4 show5 show6 show7 show8 show9
clean: clean:
rm -f icetime timings.inc *.o *.d rm -f icetime icetime.exe timings.inc *.o *.d
rm -rf test[0-9]* rm -rf test[0-9]*
-include *.d -include *.d