diff --git a/.gitignore b/.gitignore index 69ff7396..f422c7f0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -/demo +/build/ +/nextpnr-dummy diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..2ddcb724 --- /dev/null +++ b/Makefile @@ -0,0 +1,30 @@ +archs = dummy +common_objs = design.o +dummy_objs = chip.o main.o + +CXX = clang +CXXFLAGS = -ggdb -MD -std=c++11 -O2 -Icommon +LDFLAGS = -ggdb +LDLIBS = -lstdc++ + +define binaries +all:: nextpnr-$(1) + +nextpnr-$(1): $$(addprefix build/$(1)-common-,$$(common_objs)) $$(addprefix build/$(1)-arch-,$$($(1)_objs)) + $$(CXX) -o $$@ $$(LDFLAGS) -I$(1) $$^ $$(LDLIBS) + +build/$(1)-common-%.o: common/%.cc + @mkdir -p build + $$(CXX) -c -o $$@ -D$$(shell echo arch_$(1) | tr a-z A-Z) $$(CXXFLAGS) -I$(1) $$< + +build/$(1)-arch-%.o: $(1)/%.cc + @mkdir -p build + $$(CXX) -c -o $$@ -D$$(shell echo arch_$(1) | tr a-z A-Z) $$(CXXFLAGS) -I$(1) $$< +endef + +$(foreach arch,$(archs),$(eval $(call binaries,$(arch)))) + +clean: + rm -rf $(addprefix nextpnr-,$(archs)) build + +-include build/*.d diff --git a/common/design.cc b/common/design.cc new file mode 100644 index 00000000..7ba6a9b1 --- /dev/null +++ b/common/design.cc @@ -0,0 +1,21 @@ +/* + * nextpnr -- Next Generation Place and Route + * + * Copyright (C) 2018 Clifford Wolf + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include "design.h" + diff --git a/common/design.h b/common/design.h index 421937eb..1b45895e 100644 --- a/common/design.h +++ b/common/design.h @@ -1,5 +1,5 @@ /* - * nextpnr -- Next Generation PnR + * nextpnr -- Next Generation Place and Route * * Copyright (C) 2018 Clifford Wolf * diff --git a/dummy/chip.cc b/dummy/chip.cc index 58b55ec9..df7590ee 100644 --- a/dummy/chip.cc +++ b/dummy/chip.cc @@ -1,3 +1,22 @@ +/* + * nextpnr -- Next Generation Place and Route + * + * Copyright (C) 2018 Clifford Wolf + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + #include "chip.h" Chip::Chip(ChipArgs) diff --git a/dummy/chip.h b/dummy/chip.h index 07202e22..ec497e0e 100644 --- a/dummy/chip.h +++ b/dummy/chip.h @@ -1,5 +1,5 @@ /* - * nextpnr -- Next Generation PnR + * nextpnr -- Next Generation Place and Route * * Copyright (C) 2018 Clifford Wolf * diff --git a/dummy/main.cc b/dummy/main.cc index 01050d24..e3a784ca 100644 --- a/dummy/main.cc +++ b/dummy/main.cc @@ -1,4 +1,23 @@ -#include "database.h" +/* + * nextpnr -- Next Generation Place and Route + * + * Copyright (C) 2018 Clifford Wolf + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include "design.h" int main() {