diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /support/scripts/build.mak | |
| download | sdcc-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.mak | 144 |
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 |
