summaryrefslogtreecommitdiff
path: root/support/scripts/build.mak
diff options
context:
space:
mode:
authorXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
committerXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
commit268a53de823a6750d6256ee1fb1e7707b4b45740 (patch)
tree42c1799a9a82b2f7d9790ee9fe181d72a7274751 /support/scripts/build.mak
downloadsdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'support/scripts/build.mak')
-rw-r--r--support/scripts/build.mak144
1 files changed, 144 insertions, 0 deletions
diff --git a/support/scripts/build.mak b/support/scripts/build.mak
new file mode 100644
index 0000000..d4f0477
--- /dev/null
+++ b/support/scripts/build.mak
@@ -0,0 +1,144 @@
+# Makefile to get and build all the parts of GBDK
+
+CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
+ else if [ -x /bin/bash ]; then echo /bin/bash; \
+ else echo sh; fi ; fi)
+
+TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
+
+BUILD = $(TOPDIR)/build/sdcc
+SDCCLIB = $(BUILD)
+CVSFLAGS = -z5
+CVS = cvs
+SVNFLAGS =
+SVN = svn
+DIR = .
+VER = 2.2.1
+# Used as a branch name.
+SHORTVER = 221
+
+# Options:
+# linux-linux Building on Linux, targeting Linux
+# linux-ming32 Building on Linux, targeting mingw32 based win32
+# cygwin-mingw32 Building via cygwin on win32, targeting mingw32
+
+COMPILE_MODE = linux-mingw32
+SDCC_OR_GBDK = sdcc
+
+ROOT_GBDK = :pserver:anonymous@cvs.gbdk.sourceforge.net:/cvsroot/gbdk
+ROOT_SDCC = https://sdcc.svn.sourceforge.net/svnroot/sdcc
+
+ifeq ($(COMPILE_MODE),linux-linux)
+# For Linux
+SE =
+E =
+SDCC_ROOT = /usr/lib/$(SDCC_OR_GBDK)
+endif
+
+ifeq ($(COMPILE_MODE),linux-mingw32)
+# For mingw32 hosted on Linux
+# Tools name prefix
+TNP = i386-mingw32-
+# Source extension - what the gcc generated files have appended
+SE =
+# Dest extenstion - what extension we want them to have.
+E = .exe
+SDCC_ROOT = /$(SDCC_OR_GBDK)
+# Set to cross to bypass the detection
+CROSS_LIBGC = 1
+endif
+
+ifeq ($(COMPILE_MODE),cygwin-mingw32)
+# For mingw32 on win32
+# Source extension - what the gcc generated files have appended
+SE = .exe
+# Dest extenstion - what extension we want them to have.
+SDCC_ROOT = /$(SDCC_OR_GBDK)
+endif
+
+all: logged_in dist
+
+clean:
+ for i in sdcc gbdk-lib gbdk-support/lcc; do make -C $$i clean; done
+ rm -f *~
+ rm -rf $(BUILD) gbdk-lib gbdk-support sdcc logged_in
+
+update: logged_in
+ cd $(DIR); svn $(SVNFLAGS) co $(ROOT_SDCC)/branches/sdcc-$(SHORTVER)/sdcc sdcc
+ cd $(DIR); cvs $(CVSFLAGS) -d$(ROOT_GBDK) co -r sdcc-$(SHORTVER) gbdk-lib
+ cd $(DIR); cvs $(CVSFLAGS) -d$(ROOT_GBDK) co -r sdcc-$(SHORTVER) gbdk-support
+
+_sdcc: sdcc-bin sdcc-misc sdcc-lib sdcc-doc
+
+tidy:
+ find $(BUILD) -name "CVS" -exec rm -rf \;
+ find $(BUILD) -name ".svn" -exec rm -rf \;
+ find $(BUILD)/lib -name "*.asm" -exec rm -rf \;
+ -$(TNP)strip $(BUILD)/bin/*
+
+sdcc-bin: sdcc/sdccconf.h
+ make -C sdcc sdcc-bin CROSS_LIBGC=$(CROSS_LIBGC)
+ mkdir -p $(BUILD)/bin
+ for i in \
+ sdcc sdcpp link-z80 as-z80 aslink asx8051; \
+ do cp sdcc/bin/$$i$(SE) $(BUILD)/bin/$$i$(E); done
+
+sdcc-misc: sdcc/sdccconf.h
+ make -C sdcc sdcc-misc CROSS_LIBGC=$(CROSS_LIBGC)
+ mkdir -p $(BUILD)/bin
+ for i in \
+ sdcdb; \
+ do cp sdcc/bin/$$i$(SE) $(BUILD)/bin/$$i$(E); done
+ cp sdcc/sim/ucsim/s51.src/s51$(E) $(BUILD)/bin
+ cp sdcc/sim/ucsim/z80.src/sz80$(E) $(BUILD)/bin
+ cp sdcc/sim/ucsim/avr.src/savr$(E) $(BUILD)/bin
+ cp sdcc/debugger/mcs51/*.el $(BUILD)/bin
+
+sdcc-doc:
+ (cd sdcc; tar cf - doc) | (cd $(BUILD); tar xf -)
+ cp sdcc/README sdcc/COPYING $(BUILD)
+ mkdir -p $(BUILD)/sim
+ for i in COPYING INSTALL README TODO; \
+ do cp sdcc/sim/ucsim/$$i $(BUILD)/sim; done
+ (cd sdcc/sim/ucsim; tar cf - doc) | (cd $(BUILD)/sim; tar xf -)
+
+sdcc-lib: sdcc-lib-z80 sdcc-lib-gen
+ mkdir -p $(BUILD)/lib
+ (cd sdcc/device/lib; tar cf - small large) | (cd $(BUILD)/lib; tar xf -)
+ (cd sdcc/device; tar cf - examples include) | (cd $(BUILD); tar xf -)
+
+sdcc-lib-z80:
+ make -C gbdk-lib/libc SDCCLIB=$(BUILD) PORTS=z80 PLATFORMS=consolez80
+ (cd gbdk-lib/build; tar cf - consolez80 z80) | (cd $(BUILD)/lib; tar xf -)
+ mkdir -p $(BUILD)/include/gbdk-lib
+ (cd gbdk-lib/include; tar cf - .) | (cd $(BUILD)/include/gbdk-lib; tar xf -)
+
+sdcc-lib-gen:
+ make -C sdcc sdcc-device
+
+lcc:
+ make -C gbdk-support/lcc SDCCLIB=$(SDCC_ROOT)/ TNP=$(TNP)
+ cp gbdk-support/lcc/lcc$(SE) $(BUILD)/bin/lcc$(E)
+
+sdcc/sdccconf.h: sdcc/configure
+ifdef TNP
+ cd sdcc; \
+ export CCC=$(TNP)c++; \
+ export RANLIB=$(TNP)ranlib; \
+ export CC=$(TNP)gcc; \
+ ./configure --datarootdir=$(SDCC_ROOT)
+ echo $$CCC
+else
+ cd sdcc; ./configure --datarootdir=$(SDCC_ROOT)
+endif
+
+dist: _sdcc lcc tidy
+
+zdist: dist
+ tar czf gbdk-$(VER).tar.gz gbdk
+
+logged_in:
+ cvs -d$(ROOT_GBDK) login
+ cvs -d$(ROOT_SDCC) login
+ touch logged_in
+ make -f build.mak update