summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2017-11-26 17:49:16 +0100
committerClifford Wolf <clifford@clifford.at>2017-11-26 17:49:16 +0100
commit323e96d8368859ed213ede73c16f1026aeeb8453 (patch)
treecf79363848b918cb17e03385a16d31489e5aa9d1 /Makefile
parent81002dd92920da1bd6ad1b3999b8a7c6ee2be4f7 (diff)
parent8ad38d3151afdf79c34eef9b71e0353f656f3c43 (diff)
Merge branch 'emcc' of https://github.com/rqou/arachne-pnr into testing
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile24
1 files changed, 17 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 07a6f1c..87d67dc 100644
--- a/Makefile
+++ b/Makefile
@@ -32,7 +32,7 @@ ifneq ($(CXX),$(HOST_CXX))
endif
.PHONY: all
-all: bin/arachne-pnr share/arachne-pnr/chipdb-384.bin share/arachne-pnr/chipdb-1k.bin share/arachne-pnr/chipdb-8k.bin share/arachne-pnr/chipdb-5k.bin
+all: bin/arachne-pnr$(EXE) share/arachne-pnr/chipdb-384.bin share/arachne-pnr/chipdb-1k.bin share/arachne-pnr/chipdb-8k.bin share/arachne-pnr/chipdb-5k.bin
ARACHNE_VER = 0.1+$(shell test -e .git && echo `git log --oneline | wc -l`+`git diff --name-only HEAD | wc -l`)
GIT_REV = $(shell git rev-parse --verify --short HEAD 2>/dev/null || echo UNKNOWN)
@@ -42,20 +42,25 @@ VER_HASH = $(shell echo "$(ARACHNE_VER) $(GIT_REV)" | sum | cut -d ' ' -f -1)
src/version_$(VER_HASH).cc:
echo "const char *version_str = \"arachne-pnr $(ARACHNE_VER) (git sha1 $(GIT_REV), $(notdir $(CXX)) `$(CXX) --version | tr ' ()' '\n' | grep '^[0-9]' | head -n1` $(filter -f% -m% -O% -DNDEBUG,$(CXXFLAGS)))\";" > src/version_$(VER_HASH).cc
-bin/arachne-pnr: src/arachne-pnr.o src/netlist.o src/blif.o src/pack.o src/place.o src/util.o src/io.o src/route.o src/chipdb.o src/location.o src/configuration.o src/line_parser.o src/pcf.o src/global.o src/constant.o src/designstate.o src/version_$(VER_HASH).o
+bin/arachne-pnr$(EXE): src/arachne-pnr.o src/netlist.o src/blif.o src/pack.o src/place.o src/util.o src/io.o src/route.o src/chipdb.o src/location.o src/configuration.o src/line_parser.o src/pcf.o src/global.o src/constant.o src/designstate.o src/version_$(VER_HASH).o
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
ifeq ($(IS_CROSS_COMPILING),yes)
bin/arachne-pnr-host: src/arachne-pnr.host-o src/netlist.host-o src/blif.host-o src/pack.host-o src/place.host-o src/util.host-o src/io.host-o src/route.host-o src/chipdb.host-o src/location.host-o src/configuration.host-o src/line_parser.host-o src/pcf.host-o src/global.host-o src/constant.host-o src/designstate.host-o src/version_$(VER_HASH).host-o
$(HOST_CXX) $(HOST_CXXFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(HOST_LIBS)
else
-bin/arachne-pnr-host: bin/arachne-pnr
+bin/arachne-pnr-host: bin/arachne-pnr$(EXE)
cp $< $@
endif
%.host-o: %.cc
$(HOST_CXX) -c $(HOST_CPPFLAGS) $(HOST_CXXFLAGS) -o $@ $<
+ifeq ($(EXE),.js)
+# Special hack to make sure chipdb is built first
+bin/arachne-pnr$(EXE): | share/arachne-pnr/chipdb-384.bin share/arachne-pnr/chipdb-1k.bin share/arachne-pnr/chipdb-8k.bin share/arachne-pnr/chipdb-5k.bin
+endif
+
share/arachne-pnr/chipdb-384.bin: bin/arachne-pnr-host $(ICEBOX)/chipdb-384.txt
mkdir -p share/arachne-pnr
bin/arachne-pnr-host -d 384 -c $(ICEBOX)/chipdb-384.txt --write-binary-chipdb share/arachne-pnr/chipdb-384.bin
@@ -68,9 +73,9 @@ share/arachne-pnr/chipdb-8k.bin: bin/arachne-pnr-host $(ICEBOX)/chipdb-8k.txt
mkdir -p share/arachne-pnr
bin/arachne-pnr-host -d 8k -c $(ICEBOX)/chipdb-8k.txt --write-binary-chipdb share/arachne-pnr/chipdb-8k.bin
-share/arachne-pnr/chipdb-5k.bin: bin/arachne-pnr $(ICEBOX)/chipdb-5k.txt
+share/arachne-pnr/chipdb-5k.bin: bin/arachne-pnr-host $(ICEBOX)/chipdb-5k.txt
mkdir -p share/arachne-pnr
- bin/arachne-pnr -d 5k -c $(ICEBOX)/chipdb-5k.txt --write-binary-chipdb share/arachne-pnr/chipdb-5k.bin
+ bin/arachne-pnr-host -d 8k -c $(ICEBOX)/chipdb-5k.txt --write-binary-chipdb share/arachne-pnr/chipdb-5k.bin
tests/test_bv: tests/test_bv.o
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^
@@ -141,7 +146,7 @@ mxebin:
.PHONY: install
install: all
mkdir -p $(DESTDIR)$(PREFIX)/bin
- cp bin/arachne-pnr $(DESTDIR)$(PREFIX)/bin/arachne-pnr$(EXE)
+ cp bin/arachne-pnr$(EXE) $(DESTDIR)$(PREFIX)/bin/arachne-pnr$(EXE)
mkdir -p $(DESTDIR)$(PREFIX)/share/arachne-pnr
cp share/arachne-pnr/chipdb-384.bin $(DESTDIR)$(PREFIX)/share/arachne-pnr/chipdb-384.bin
cp share/arachne-pnr/chipdb-1k.bin $(DESTDIR)$(PREFIX)/share/arachne-pnr/chipdb-1k.bin
@@ -155,7 +160,7 @@ uninstall:
.PHONY: clean
clean:
- rm -f src/*.o src/*.host-o tests/*.o src/*.d tests/*.d bin/arachne-pnr bin/arachne-pnr-host
+ rm -f src/*.o src/*.host-o tests/*.o src/*.d tests/*.d bin/arachne-pnr$(EXE) bin/arachne-pnr-host
rm -f tests/test_bv tests/test_us
rm -f share/arachne-pnr/*.bin
rm -f src/version_*
@@ -164,3 +169,8 @@ clean:
rm -rf tests/fsm/temp tests/fsm/1k tests/fsm/8k
rm -rf tests/regression/1k tests/regression/8k
rm -rf tests/simple/txt.sum tests/simple/1k tests/simple/8k
+
+.PHONY: emcc
+emcc:
+ $(MAKE) EXE=.js clean
+ $(MAKE) CC=emcc CXX=emcc HOST_CC=gcc HOST_CXX=g++ PREFIX=/ LDFLAGS="--memory-init-file 0 --embed-file share -s TOTAL_MEMORY=256*1024*1024" EXE=.js