From aa7f9c3ea3ba351a5f2ce74e155e531435774eb5 Mon Sep 17 00:00:00 2001 From: bebbo Date: Mon, 20 Aug 2018 16:05:22 +0200 Subject: [PATCH] logs are in folder log now --- .gitignore | 3 + Makefile | 561 +++++++++++++++++++++++++++------------------------- sdk/install | 6 +- 3 files changed, 300 insertions(+), 270 deletions(-) diff --git a/.gitignore b/.gitignore index fe81b11..915c5f4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ build* projects download Output +*.log +.lock +.state diff --git a/Makefile b/Makefile index dbea381..7949a5b 100644 --- a/Makefile +++ b/Makefile @@ -28,8 +28,6 @@ TARGET_C_FLAGS?=-Os -fomit-frame-pointer E=CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LIBCFLAGS_FOR_TARGET="$(TARGET_C_FLAGS)" -#LOG = >& $(PWD)/x.log || tail -n 999 $(PWD)/x.log - # ================================================= # determine exe extension for cygwin $(eval MYMAKE = $(shell which make) ) @@ -48,8 +46,31 @@ MPFR = mpfr-3.1.6 MPFRFILE = $(MPFR).tar.bz2 # ================================================= +# pretty output ^^ +# ================================================= +TEEEE ?= >& -.PHONY: x +ifeq ($(sdk),) +__LINIT := $(shell rm .state 2>/dev/nul) +endif + +L0 = @__p= +L00 = __p= +ifeq ($(verbose),) +L1 = ; (flock 200; echo -e \\e[33m$$__p... >>.state; echo -ne \\e[33m$$__p... ) 200>.lock; mkdir -p log; __l="log/$$__p.log" ; ( +L2 = )$(TEEEE) "$$__l"; __r=$$?; (flock 200; if (( $$__r > 0 )); then \ + echo -e \\r\\e[K\\e[31m$$__p...failed\\e[39m; \ + tail -n 20 "$$__l"; \ + echo -e \\e[31m$$__p...failed\\e[39m; \ + else echo -e \\r\\e[K\\e[32m$$__p...done\\e[39m; fi \ + ;grep -v "$$__p" .state >.state0; mv .state0 .state ;echo -n $$(cat .state | paste -sd " " -); ) 200>.lock; [[ $$__r -gt 0 ]] && exit $$__r; echo -n "" +else +L1 = ; +endif + +# ================================================= + +.PHONY: x init x: @if [ "$(sdk)" == "" ]; then \ $(MAKE) help; \ @@ -92,6 +113,7 @@ endif .PHONY: clean-prefix clean clean-gcc clean-binutils clean-fd2sfd clean-fd2pragma clean-ira clean-sfdc clean-vasm clean-vbcc clean-vlink clean-libnix clean-ixemul clean-libgcc clean-clib2 clean-libdebug clean-libSDL12 clean-newlib clean-ndk clean: clean-gcc clean-binutils clean-fd2sfd clean-fd2pragma clean-ira clean-sfdc clean-vasm clean-vbcc clean-vlink clean-libnix clean-ixemul clean-clib2 clean-libdebug clean-libSDL12 clean-newlib clean-ndk clean-gmp clean-mpc clean-mpfr rm -rf $(BUILD) + rm -rf *.log clean-gcc: rm -rf $(BUILD)/gcc @@ -160,7 +182,7 @@ clean-prefix: rm -rf $(PREFIX)/libexec rm -rf $(PREFIX)/lib/gcc rm -rf $(PREFIX)/m68k-amigaos - mkdir -p $(PREFIX)/bin + @mkdir -p $(PREFIX)/bin # ================================================= # update all projects @@ -170,7 +192,7 @@ clean-prefix: update: update-gcc update-binutils update-fd2sfd update-fd2pragma update-ira update-sfdc update-vasm update-vbcc update-vlink update-libnix update-ixemul update-clib2 update-libdebug update-libSDL12 update-ndk update-newlib update-netinclude update-gcc: projects/gcc/configure - cd projects/gcc && export DEPTH=16; while true; do echo "trying depth=$$DEPTH"; git pull --depth $$DEPTH && break; export DEPTH=$$(($$DEPTH+$$DEPTH));done + @cd projects/gcc && export DEPTH=16; while true; do echo "trying depth=$$DEPTH"; git pull --depth $$DEPTH && break; export DEPTH=$$(($$DEPTH+$$DEPTH));done GCC_VERSION=$(shell cat 2>/dev/null projects/gcc/gcc/BASE-VER) update-binutils: projects/binutils/configure @@ -180,51 +202,51 @@ update-binutils: projects/binutils/configure $(MAKE) projects/binutils/configure; \ $(MAKE) clean-binutils; \ fi - cd projects/binutils && export DEPTH=16; while true; do echo "trying depth=$$DEPTH"; git pull --depth $$DEPTH && break; export DEPTH=$$(($$DEPTH+$$DEPTH));done + @cd projects/binutils && export DEPTH=16; while true; do echo "trying depth=$$DEPTH"; git pull --depth $$DEPTH && break; export DEPTH=$$(($$DEPTH+$$DEPTH));done update-fd2sfd: projects/fd2sfd/configure - cd projects/fd2sfd && git pull + @cd projects/fd2sfd && git pull update-fd2pragma: projects/fd2pragma/makefile - cd projects/fd2pragma && git pull + @cd projects/fd2pragma && git pull update-ira: projects/ira/Makefile - cd projects/ira && git pull + @cd projects/ira && git pull update-sfdc: projects/sfdc/configure - cd projects/sfdc && git pull + @cd projects/sfdc && git pull update-vasm: projects/vasm/Makefile - cd projects/vasm && git pull + @cd projects/vasm && git pull update-vbcc: projects/vbcc/Makefile - cd projects/vbcc && git pull + @cd projects/vbcc && git pull update-vlink: projects/vlink/Makefile - cd projects/vlink && git pull + @cd projects/vlink && git pull update-libnix: projects/libnix/configure - cd projects/libnix && git pull + @cd projects/libnix && git pull update-ixemul: projects/ixemul/configure - cd projects/ixemul && git pull + @cd projects/ixemul && git pull update-clib2: projects/clib2/LICENSE - cd projects/clib2 && git pull + @cd projects/clib2 && git pull update-libdebug: projects/libdebug/configure - cd projects/libdebug && git pull + @cd projects/libdebug && git pull update-libSDL12: projects/libSDL12/Makefile.bax - cd projects/libSDL12 && git pull + @cd projects/libSDL12 && git pull update-ndk: projects/NDK_3.9.info update-newlib: projects/newlib-cygwin/newlib/configure - cd projects/newlib-cygwin && git pull + @cd projects/newlib-cygwin && git pull update-netinclude: projects/amiga-netinclude/README.md - cd projects/amiga-netinclude && git pull + @cd projects/amiga-netinclude && git pull update-gmp: @mkdir -p download @@ -232,7 +254,7 @@ update-gmp: then rm -rf projects/$(GMP); rm -rf projects/gcc/gmp; \ else cd download && wget ftp://ftp.gnu.org/gnu/gmp/$(GMPFILE); \ fi; - cd projects && tar xf ../download/$(GMPFILE) + @cd projects && tar xf ../download/$(GMPFILE) update-mpc: @mkdir -p download @@ -240,7 +262,7 @@ update-mpc: then rm -rf projcts/$(MPC); rm -rf projects/gcc/mpc; \ else cd download && wget ftp://ftp.gnu.org/gnu/mpc/$(MPCFILE); \ fi; - cd projects && tar xf ../download/$(MPCFILE) + @cd projects && tar xf ../download/$(MPCFILE) update-mpfr: @mkdir -p download @@ -248,7 +270,7 @@ update-mpfr: then rm -rf projects/$(MPFR); rm -rf projects/gcc/mpfr; \ else cd download && wget ftp://ftp.gnu.org/gnu/mpfr/$(MPFRFILE); \ fi; - cd projects && tar xf ../download/$(MPFRFILE) + @cd projects && tar xf ../download/$(MPFRFILE) status-all: GCC_VERSION=$(shell cat 2>/dev/null projects/gcc/gcc/BASE-VER) @@ -256,46 +278,6 @@ status-all: # B I N # ================================================= -# ================================================= -# gcc -# ================================================= -CONFIG_GCC=--prefix=$(PREFIX) --target=m68k-amigaos --enable-languages=c,c++,objc --enable-version-specific-runtime-libs --disable-libssp --disable-nls \ - --with-headers=$(PWD)/projects/newlib-cygwin/newlib/libc/sys/amigaos/include/ --disable-shared - - -GCC_CMD = m68k-amigaos-c++ m68k-amigaos-g++ m68k-amigaos-gcc-$(GCC_VERSION) m68k-amigaos-gcc-nm \ - m68k-amigaos-gcov m68k-amigaos-gcov-tool m68k-amigaos-cpp m68k-amigaos-gcc m68k-amigaos-gcc-ar \ - m68k-amigaos-gcc-ranlib m68k-amigaos-gcov-dump -GCC = $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(GCC_CMD)) - -GCC_DIR = . gcc gcc/c gcc/c-family gcc/cp gcc/objc gcc/config/m68k libiberty libcpp libdecnumber -GCCD = $(patsubst %,projects/gcc/%, $(GCC_DIR)) - -gcc: $(BUILD)/gcc/_done - -$(BUILD)/gcc/_done: $(BUILD)/gcc/Makefile $(shell find 2>/dev/null $(GCCD) -maxdepth 1 -type f ) - $(MAKE) -C $(BUILD)/gcc all-gcc $(LOG) - $(MAKE) -C $(BUILD)/gcc install-gcc $(LOG) - echo "done" >$@ - @echo "built $(GCC)" - -$(BUILD)/gcc/Makefile: projects/gcc/configure $(BUILD)/binutils/_done - @mkdir -p $(BUILD)/gcc -ifneq ($(OWNGMP),) - @mkdir -p projects/gcc/gmp - @mkdir -p projects/gcc/mpc - @mkdir -p projects/gcc/mpfr - rsync -a projects/$(GMP)/* projects/gcc/gmp - rsync -a projects/$(MPC)/* projects/gcc/mpc - rsync -a projects/$(MPFR)/* projects/gcc/mpfr -endif -# if [ "$(UNAME_S)" == "Darwin" ]; then cd $(BUILD)/gcc && contrib/download_prerequisites; fi - cd $(BUILD)/gcc && $(E) $(PWD)/projects/gcc/configure $(CONFIG_GCC) $(LOG) - -projects/gcc/configure: - @mkdir -p projects - cd projects && git clone -b $(GCC_BRANCH) --depth 16 https://github.com/bebbo/gcc - # ================================================= # binutils # ================================================= @@ -315,23 +297,62 @@ endif binutils: $(BUILD)/binutils/_done -$(BUILD)/binutils/_done: $(BUILD)/binutils/gas/Makefile $(shell find 2>/dev/null projects/binutils -not \( -path projects/binutils/.git -prune \) -type f) - touch -t 0001010000 projects/binutils/binutils/arparse.y - touch -t 0001010000 projects/binutils/binutils/arlex.l - touch -t 0001010000 projects/binutils/ld/ldgram.y - touch -t 0001010000 projects/binutils/intl/plural.y - $(MAKE) -C $(BUILD)/binutils all-gas all-binutils all-ld $(ALL_GDB) $(LOG) - $(MAKE) -C $(BUILD)/binutils install-gas install-binutils install-ld $(INSTALL_GDB) $(LOG) - echo "done" >$@ - echo "build $(BINUTILS)" +$(BUILD)/binutils/_done: $(BUILD)/binutils/Makefile $(shell find 2>/dev/null projects/binutils -not \( -path projects/binutils/.git -prune \) -type f) + @touch -t 0001010000 projects/binutils/binutils/arparse.y + @touch -t 0001010000 projects/binutils/binutils/arlex.l + @touch -t 0001010000 projects/binutils/ld/ldgram.y + @touch -t 0001010000 projects/binutils/intl/plural.y + $(L0)"make binutils"$(L1)$(MAKE) -C $(BUILD)/binutils all-gas all-binutils all-ld $(ALL_GDB) $(L2) + $(L0)"install binutils"$(L1)$(MAKE) -C $(BUILD)/binutils install-gas install-binutils install-ld $(INSTALL_GDB) $(L2) + @echo "done" >$@ -$(BUILD)/binutils/gas/Makefile: projects/binutils/configure +$(BUILD)/binutils/Makefile: projects/binutils/configure @mkdir -p $(BUILD)/binutils - cd $(BUILD)/binutils && $(E) $(PWD)/projects/binutils/configure $(CONFIG_BINUTILS) $(LOG) + $(L0)"configure binutils"$(L1) cd $(BUILD)/binutils && $(E) $(PWD)/projects/binutils/configure $(CONFIG_BINUTILS) $(L2) + projects/binutils/configure: @mkdir -p projects - cd projects && git clone -b $(BINUTILS_BRANCH) --depth 16 $(BINUTILS_GIT) binutils + @cd projects && git clone -b $(BINUTILS_BRANCH) --depth 16 $(BINUTILS_GIT) binutils + +# ================================================= +# gcc +# ================================================= +CONFIG_GCC=--prefix=$(PREFIX) --target=m68k-amigaos --enable-languages=c,c++,objc --enable-version-specific-runtime-libs --disable-libssp --disable-nls \ + --with-headers=$(PWD)/projects/newlib-cygwin/newlib/libc/sys/amigaos/include/ --disable-shared + + +GCC_CMD = m68k-amigaos-c++ m68k-amigaos-g++ m68k-amigaos-gcc-$(GCC_VERSION) m68k-amigaos-gcc-nm \ + m68k-amigaos-gcov m68k-amigaos-gcov-tool m68k-amigaos-cpp m68k-amigaos-gcc m68k-amigaos-gcc-ar \ + m68k-amigaos-gcc-ranlib m68k-amigaos-gcov-dump +GCC = $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(GCC_CMD)) + +GCC_DIR = . gcc gcc/c gcc/c-family gcc/cp gcc/objc gcc/config/m68k libiberty libcpp libdecnumber +GCCD = $(patsubst %,projects/gcc/%, $(GCC_DIR)) + +gcc: $(BUILD)/gcc/_done + +$(BUILD)/gcc/_done: $(BUILD)/gcc/Makefile $(shell find 2>/dev/null $(GCCD) -maxdepth 1 -type f ) + $(L0)"make gcc"$(L1) $(MAKE) -C $(BUILD)/gcc all-gcc $(L2) + $(L0)"install gcc"$(L1) $(MAKE) -C $(BUILD)/gcc install-gcc $(L2) + @echo "done" >$@ + +$(BUILD)/gcc/Makefile: projects/gcc/configure $(BUILD)/binutils/_done + @mkdir -p $(BUILD)/gcc +ifneq ($(OWNGMP),) + @mkdir -p projects/gcc/gmp + @mkdir -p projects/gcc/mpc + @mkdir -p projects/gcc/mpfr + @rsync -a projects/$(GMP)/* projects/gcc/gmp + @rsync -a projects/$(MPC)/* projects/gcc/mpc + @rsync -a projects/$(MPFR)/* projects/gcc/mpfr +endif + $(L0)"configure gcc"$(L1) cd $(BUILD)/gcc && $(E) $(PWD)/projects/gcc/configure $(CONFIG_GCC) $(L2) + +projects/gcc/configure: + @mkdir -p projects + @cd projects && git clone -b $(GCC_BRANCH) --depth 16 https://github.com/bebbo/gcc + # ================================================= @@ -342,20 +363,20 @@ CONFIG_FD2SFD = --prefix=$(PREFIX) --target=m68k-amigaos fd2sfd: $(BUILD)/fd2sfd/_done $(BUILD)/fd2sfd/_done: $(PREFIX)/bin/fd2sfd - @echo "built $(PREFIX)/bin/fd2sfd" @echo "done" >$@ $(PREFIX)/bin/fd2sfd: $(BUILD)/fd2sfd/Makefile $(shell find 2>/dev/null projects/fd2sfd -not \( -path projects/fd2sfd/.git -prune \) -type f) - $(MAKE) -C $(BUILD)/fd2sfd all $(LOG) - mkdir -p $(PREFIX)/bin/ - $(MAKE) -C $(BUILD)/fd2sfd install $(LOG) + $(L0)"make fd2sfd"$(L1) $(MAKE) -C $(BUILD)/fd2sfd all $(L2) + @mkdir -p $(PREFIX)/bin/ + $(L0)"install fd2sfd"$(L1) $(MAKE) -C $(BUILD)/fd2sfd install $(L2) + $(BUILD)/fd2sfd/Makefile: projects/fd2sfd/configure @mkdir -p $(BUILD)/fd2sfd - cd $(BUILD)/fd2sfd && $(E) $(PWD)/projects/fd2sfd/configure $(CONFIG_FD2SFD) $(LOG) + $(L0)"configure fd2sfd"$(L1) cd $(BUILD)/fd2sfd && $(E) $(PWD)/projects/fd2sfd/configure $(CONFIG_FD2SFD) $(L2) projects/fd2sfd/configure: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/cahirwpz/fd2sfd + @cd projects && git clone -b master --depth 4 https://github.com/cahirwpz/fd2sfd for i in $$(find patches/fd2sfd/ -type f); \ do if [[ "$$i" == *.diff ]] ; \ then j=$${i:8}; patch -N "projects/$${j%.diff}" "$$i"; fi ; done @@ -366,20 +387,19 @@ projects/fd2sfd/configure: fd2pragma: $(BUILD)/fd2pragma/_done $(BUILD)/fd2pragma/_done: $(PREFIX)/bin/fd2pragma - @echo "built $(PREFIX)/bin/fd2pragma" @echo "done" >$@ $(PREFIX)/bin/fd2pragma: $(BUILD)/fd2pragma/fd2pragma - mkdir -p $(PREFIX)/bin/ - install $(BUILD)/fd2pragma/fd2pragma $(PREFIX)/bin/ + @mkdir -p $(PREFIX)/bin/ + $(L0)"install fd2sfd"$(L1) install $(BUILD)/fd2pragma/fd2pragma $(PREFIX)/bin/ $(L2) $(BUILD)/fd2pragma/fd2pragma: projects/fd2pragma/makefile $(shell find 2>/dev/null projects/fd2pragma -not \( -path projects/fd2pragma/.git -prune \) -type f) @mkdir -p $(BUILD)/fd2pragma - cd projects/fd2pragma && $(CC) -o $(PWD)/$@ $(CFLAGS) fd2pragma.c + $(L0)"make fd2sfd"$(L1) cd projects/fd2pragma && $(CC) -o $(PWD)/$@ $(CFLAGS) fd2pragma.c $(L2) projects/fd2pragma/makefile: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/adtools/fd2pragma + @cd projects && git clone -b master --depth 4 https://github.com/adtools/fd2pragma # ================================================= # ira @@ -387,20 +407,19 @@ projects/fd2pragma/makefile: ira: $(BUILD)/ira/_done $(BUILD)/ira/_done: $(PREFIX)/bin/ira - @echo "built $(PREFIX)/bin/ira" @echo "done" >$@ $(PREFIX)/bin/ira: $(BUILD)/ira/ira - mkdir -p $(PREFIX)/bin/ - install $(BUILD)/ira/ira $(PREFIX)/bin/ + @mkdir -p $(PREFIX)/bin/ + $(L0)"install ira"$(L1) install $(BUILD)/ira/ira $(PREFIX)/bin/ $(L2) $(BUILD)/ira/ira: projects/ira/Makefile $(shell find 2>/dev/null projects/ira -not \( -path projects/ira/.git -prune \) -type f) @mkdir -p $(BUILD)/ira - cd projects/ira && $(CC) -o $(PWD)/$@ $(CFLAGS) *.c -std=c99 + $(L0)"make ira"$(L1) cd projects/ira && $(CC) -o $(PWD)/$@ $(CFLAGS) *.c -std=c99 $(L2) projects/ira/Makefile: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/bebbo/ira + @cd projects && git clone -b master --depth 4 https://github.com/bebbo/ira # ================================================= # sfdc @@ -410,21 +429,20 @@ CONFIG_SFDC = --prefix=$(PREFIX) --target=m68k-amigaos sfdc: $(BUILD)/sfdc/_done $(BUILD)/sfdc/_done: $(PREFIX)/bin/sfdc - @echo "built $(PREFIX)/bin/sfdc" @echo "done" >$@ $(PREFIX)/bin/sfdc: $(BUILD)/sfdc/Makefile $(shell find 2>/dev/null projects/sfdc -not \( -path projects/sfdc/.git -prune \) -type f) - $(MAKE) -C $(BUILD)/sfdc sfdc $(LOG) - mkdir -p $(PREFIX)/bin/ - install $(BUILD)/sfdc/sfdc $(PREFIX)/bin + $(L0)"make sfdc"$(L1) $(MAKE) -C $(BUILD)/sfdc sfdc $(L2) + @mkdir -p $(PREFIX)/bin/ + $(L0)"install sfdc"$(L1) install $(BUILD)/sfdc/sfdc $(PREFIX)/bin $(L2) $(BUILD)/sfdc/Makefile: projects/sfdc/configure - rsync -a projects/sfdc $(BUILD)/ --exclude .git - cd $(BUILD)/sfdc && $(E) $(PWD)/$(BUILD)/sfdc/configure $(CONFIG_SFDC) $(LOG) + @rsync -a projects/sfdc $(BUILD)/ --exclude .git + $(L0)"configure sfdc"$(L1) cd $(BUILD)/sfdc && $(E) $(PWD)/$(BUILD)/sfdc/configure $(CONFIG_SFDC) $(L2) projects/sfdc/configure: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/adtools/sfdc + @cd projects && git clone -b master --depth 4 https://github.com/adtools/sfdc for i in $$(find patches/sfdc/ -type f); \ do if [[ "$$i" == *.diff ]] ; \ then j=$${i:8}; patch -N "projects/$${j%.diff}" "$$i"; fi ; done @@ -438,23 +456,22 @@ VASM = $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(VASM_CMD)) vasm: $(BUILD)/vasm/_done $(BUILD)/vasm/_done: $(BUILD)/vasm/Makefile $(shell find 2>/dev/null projects/vasm -not \( -path projects/vasm/.git -prune \) -type f) - $(MAKE) -C $(BUILD)/vasm CPU=m68k SYNTAX=mot $(LOG) - mkdir -p $(PREFIX)/bin/ - install $(BUILD)/vasm/vasmm68k_mot $(PREFIX)/bin/ - install $(BUILD)/vasm/vobjdump $(PREFIX)/bin/ - cp patches/vc.config $(BUILD)/vasm/vc.config - sed -e "s|PREFIX|$(PREFIX)|g" -i.bak $(BUILD)/vasm/vc.config - mkdir -p $(PREFIX)/m68k-amigaos/etc/ - install $(BUILD)/vasm/vc.config $(PREFIX)/bin/ + $(L0)"make vasm"$(L1) $(MAKE) -C $(BUILD)/vasm CPU=m68k SYNTAX=mot $(L2) + @mkdir -p $(PREFIX)/bin/ + $(L0)"install vasm"$(L1) install $(BUILD)/vasm/vasmm68k_mot $(PREFIX)/bin/ ;\ + install $(BUILD)/vasm/vobjdump $(PREFIX)/bin/ ;\ + cp patches/vc.config $(BUILD)/vasm/vc.config ;\ + sed -e "s|PREFIX|$(PREFIX)|g" -i.bak $(BUILD)/vasm/vc.config ;\ + @mkdir -p $(PREFIX)/m68k-amigaos/etc/ ;\ + install $(BUILD)/vasm/vc.config $(PREFIX)/bin/ $(L2) @echo "done" >$@ - @echo "built $(vasm)" $(BUILD)/vasm/Makefile: projects/vasm/Makefile - rsync -a projects/vasm $(BUILD)/ --exclude .git + @rsync -a projects/vasm $(BUILD)/ --exclude .git projects/vasm/Makefile: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/leffmann/vasm + @cd projects && git clone -b master --depth 4 https://github.com/leffmann/vasm # ================================================= # vbcc @@ -465,22 +482,22 @@ VBCC = $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(VBCC_CMD)) vbcc: $(BUILD)/vbcc/_done $(BUILD)/vbcc/_done: $(BUILD)/vbcc/Makefile $(shell find 2>/dev/null projects/vbcc -not \( -path projects/vbcc/.git -prune \) -type f) - cd $(BUILD)/vbcc && TARGET=m68k $(MAKE) bin/dtgen $(LOG) - cd $(BUILD)/vbcc && echo -e "y\\ny\\nsigned char\\ny\\nunsigned char\\nn\\ny\\nsigned short\\nn\\ny\\nunsigned short\\nn\\ny\\nsigned int\\nn\\ny\\nunsigned int\\nn\\ny\\nsigned long long\\nn\\ny\\nunsigned long long\\nn\\ny\\nfloat\\nn\\ny\\ndouble\\n" >c.txt; bin/dtgen machines/m68k/machine.dt machines/m68k/dt.h machines/m68k/dt.c c.txt + $(L0)"run vbcc dtgen"$(L1) cd $(BUILD)/vbcc && bin/dtgen machines/m68k/machine.dt machines/m68k/dt.h machines/m68k/dt.c $@ - @echo "built $(VBCC)" $(BUILD)/vbcc/Makefile: projects/vbcc/Makefile - rsync -a projects/vbcc $(BUILD)/ --exclude .git - mkdir -p $(BUILD)/vbcc/bin + @rsync -a projects/vbcc $(BUILD)/ --exclude .git + @mkdir -p $(BUILD)/vbcc/bin projects/vbcc/Makefile: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/leffmann/vbcc + @cd projects && git clone -b master --depth 4 https://github.com/leffmann/vbcc # ================================================= # vlink @@ -491,18 +508,31 @@ VLINK = $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(VLINK_CMD)) vlink: $(BUILD)/vlink/_done $(BUILD)/vlink/_done: $(BUILD)/vlink/Makefile $(shell find 2>/dev/null projects/vlink -not \( -path projects/vlink/.git -prune \) -type f) - cd $(BUILD)/vlink && TARGET=m68k $(MAKE) $(LOG) - mkdir -p $(PREFIX)/bin/ - install $(BUILD)/vlink/vlink $(PREFIX)/bin/ + $(L0)"make vlink"$(L1) cd $(BUILD)/vlink && TARGET=m68k $(MAKE) $(L2) + @mkdir -p $(PREFIX)/bin/ + $(L0)"install vlink"$(L1) install $(BUILD)/vlink/vlink $(PREFIX)/bin/ $(L2) @echo "done" >$@ - @echo "built $(VLINK)" $(BUILD)/vlink/Makefile: projects/vlink/Makefile - rsync -a projects/vlink $(BUILD)/ --exclude .git + @rsync -a projects/vlink $(BUILD)/ --exclude .git projects/vlink/Makefile: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/leffmann/vlink + @cd projects && git clone -b master --depth 4 https://github.com/leffmann/vlink + +.PHONY: lha +lha: $(BUILD)/lha/_done + +$(BUILD)/lha/_done: + @if [ ! -e "$$(which lha)" ]; then \ + cd $(BUILD) && rm -rf lha; \ + git clone https://github.com/jca02266/lha; \ + cd lha; \ + $(L00)"configure lha"$(L1) aclocal; autoheader; automake -a; autoconf; ./configure; $(L2); \ + $(L00)"make lha"$(L1) make all; $(L2); \ + $(L00)"install lha"$(L1) mkdir -p $(PREFIX)/bin/; install src/lha$(EXEEXT) $(PREFIX)/bin/lha$(EXEEXT); $(L2); \ + fi + @echo "done" >$@ # ================================================= # L I B R A R I E S @@ -523,71 +553,70 @@ SYS_INCLUDE2 = $(filter-out $(NDK_INCLUDE_PROTO),$(patsubst projects/NDK_3.9/Inc ndk: $(BUILD)/ndk-include/_ndk $(BUILD)/ndk-include/_ndk: $(BUILD)/ndk-include/_ndk0 $(NDK_INCLUDE_INLINE) $(NDK_INCLUDE_LVO) $(NDK_INCLUDE_PROTO) projects/fd2sfd/configure projects/fd2pragma/makefile - mkdir -p $(BUILD)/ndk-include/ - echo "done" >$@ + @mkdir -p $(BUILD)/ndk-include/ + @echo "done" >$@ $(BUILD)/ndk-include/_ndk0: projects/NDK_3.9.info $(NDK_INCLUDE) - mkdir -p $(PREFIX)/m68k-amigaos/ndk-include - rsync -a $(PWD)/projects/NDK_3.9/Include/include_h/* $(PREFIX)/m68k-amigaos/ndk-include --exclude proto - rsync -a $(PWD)/projects/NDK_3.9/Include/include_i/* $(PREFIX)/m68k-amigaos/ndk-include - mkdir -p $(PREFIX)/m68k-amigaos/ndk/lib - rsync -a $(PWD)/projects/NDK_3.9/Include/fd $(PREFIX)/m68k-amigaos/ndk/lib - rsync -a $(PWD)/projects/NDK_3.9/Include/sfd $(PREFIX)/m68k-amigaos/ndk/lib - rsync -a $(PWD)/projects/NDK_3.9/Include/linker_libs $(PREFIX)/m68k-amigaos/ndk/lib - mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/proto - cp -p projects/NDK_3.9/Include/include_h/proto/alib.h $(PREFIX)/m68k-amigaos/ndk-include/proto - cp -p projects/NDK_3.9/Include/include_h/proto/cardres.h $(PREFIX)/m68k-amigaos/ndk-include/proto - mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/inline - cp -p projects/fd2sfd/cross/share/m68k-amigaos/alib.h $(PREFIX)/m68k-amigaos/ndk-include/inline - cp -p projects/fd2pragma/Include/inline/stubs.h $(PREFIX)/m68k-amigaos/ndk-include/inline - cp -p projects/fd2pragma/Include/inline/macros.h $(PREFIX)/m68k-amigaos/ndk-include/inline - mkdir -p $(BUILD)/ndk-include/ - echo "done" >$@ + @mkdir -p $(PREFIX)/m68k-amigaos/ndk-include + @rsync -a $(PWD)/projects/NDK_3.9/Include/include_h/* $(PREFIX)/m68k-amigaos/ndk-include --exclude proto + @rsync -a $(PWD)/projects/NDK_3.9/Include/include_i/* $(PREFIX)/m68k-amigaos/ndk-include + @mkdir -p $(PREFIX)/m68k-amigaos/ndk/lib + @rsync -a $(PWD)/projects/NDK_3.9/Include/fd $(PREFIX)/m68k-amigaos/ndk/lib + @rsync -a $(PWD)/projects/NDK_3.9/Include/sfd $(PREFIX)/m68k-amigaos/ndk/lib + @rsync -a $(PWD)/projects/NDK_3.9/Include/linker_libs $(PREFIX)/m68k-amigaos/ndk/lib + @mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/proto + @cp -p projects/NDK_3.9/Include/include_h/proto/alib.h $(PREFIX)/m68k-amigaos/ndk-include/proto + @cp -p projects/NDK_3.9/Include/include_h/proto/cardres.h $(PREFIX)/m68k-amigaos/ndk-include/proto + @mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/inline + @cp -p projects/fd2sfd/cross/share/m68k-amigaos/alib.h $(PREFIX)/m68k-amigaos/ndk-include/inline + @cp -p projects/fd2pragma/Include/inline/stubs.h $(PREFIX)/m68k-amigaos/ndk-include/inline + @cp -p projects/fd2pragma/Include/inline/macros.h $(PREFIX)/m68k-amigaos/ndk-include/inline + @mkdir -p $(BUILD)/ndk-include/ + @echo "done" >$@ ndk-inline: $(NDK_INCLUDE_INLINE) sfdc $(BUILD)/ndk-include/_inline $(NDK_INCLUDE_INLINE): $(PREFIX)/bin/sfdc $(NDK_INCLUDE_SFD) $(BUILD)/ndk-include/_inline $(BUILD)/ndk-include/_lvo $(BUILD)/ndk-include/_proto $(BUILD)/ndk-include/_ndk0 - sfdc --target=m68k-amigaos --mode=macros --output=$@ $(patsubst $(PREFIX)/m68k-amigaos/ndk-include/inline/%.h,projects/NDK_3.9/Include/sfd/%_lib.sfd,$@) + $(L0)"sfdc inline $(@F)"$(L1) sfdc --target=m68k-amigaos --mode=macros --output=$@ $(patsubst $(PREFIX)/m68k-amigaos/ndk-include/inline/%.h,projects/NDK_3.9/Include/sfd/%_lib.sfd,$@) $(L2) ndk-lvo: $(NDK_INCLUDE_LVO) sfdc $(NDK_INCLUDE_LVO): $(PREFIX)/bin/sfdc $(NDK_INCLUDE_SFD) $(BUILD)/ndk-include/_lvo $(BUILD)/ndk-include/_ndk0 - sfdc --target=m68k-amigaos --mode=lvo --output=$@ $(patsubst $(PREFIX)/m68k-amigaos/ndk-include/lvo/%_lib.i,projects/NDK_3.9/Include/sfd/%_lib.sfd,$@) + $(L0)"sfdc lvo $(@F)"$(L1) sfdc --target=m68k-amigaos --mode=lvo --output=$@ $(patsubst $(PREFIX)/m68k-amigaos/ndk-include/lvo/%_lib.i,projects/NDK_3.9/Include/sfd/%_lib.sfd,$@) $(L2) ndk-proto: $(NDK_INCLUDE_PROTO) sfdc $(NDK_INCLUDE_PROTO): $(PREFIX)/bin/sfdc $(NDK_INCLUDE_SFD) $(BUILD)/ndk-include/_proto $(BUILD)/ndk-include/_ndk0 - sfdc --target=m68k-amigaos --mode=proto --output=$@ $(patsubst $(PREFIX)/m68k-amigaos/ndk-include/proto/%.h,projects/NDK_3.9/Include/sfd/%_lib.sfd,$@) + $(L0)"sfdc proto $(@F)"$(L1) sfdc --target=m68k-amigaos --mode=proto --output=$@ $(patsubst $(PREFIX)/m68k-amigaos/ndk-include/proto/%.h,projects/NDK_3.9/Include/sfd/%_lib.sfd,$@) $(L2) $(BUILD)/ndk-include/_inline: - mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/inline - mkdir -p $(BUILD)/ndk-include/ - echo "done" >$@ + @mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/inline + @mkdir -p $(BUILD)/ndk-include/ + @echo "done" >$@ $(BUILD)/ndk-include/_lvo: - mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/lvo - mkdir -p $(PREFIX)/m68k-amigaos/ndk13-include/lvo - mkdir -p $(BUILD)/ndk-include/ - echo "done" >$@ + @mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/lvo + @mkdir -p $(PREFIX)/m68k-amigaos/ndk13-include/lvo + @mkdir -p $(BUILD)/ndk-include/ + @echo "done" >$@ $(BUILD)/ndk-include/_proto: - mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/proto - mkdir -p $(PREFIX)/m68k-amigaos/ndk13-include/proto - mkdir -p $(BUILD)/ndk-include/ - echo "done" >$@ + @mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/proto + @mkdir -p $(PREFIX)/m68k-amigaos/ndk13-include/proto + @mkdir -p $(BUILD)/ndk-include/ + @echo "done" >$@ -projects/NDK_3.9.info: download/NDK39.lha $(shell find 2>/dev/null patches/NDK_3.9/ -type f) - mkdir -p projects - mkdir -p $(BUILD)/ - if [ ! -e "$$(which lha)" ]; then cd $(BUILD)/ && rm -rf lha; git clone https://github.com/jca02266/lha; cd lha; aclocal; autoheader; automake -a; autoconf; ./configure; make all; mkdir -p $(PREFIX)/bin/; install src/lha$(EXEEXT) $(PREFIX)/bin/lha$(EXEEXT); fi - cd projects && lha xf ../download/NDK39.lha - touch -t 0001010000 download/NDK39.lha - for i in $$(find patches/NDK_3.9/ -type f); \ - do if [[ "$$i" == *.diff ]] ; \ +projects/NDK_3.9.info: $(BUILD)/lha/_done download/NDK39.lha $(shell find 2>/dev/null patches/NDK_3.9/ -type f) + @mkdir -p projects + @mkdir -p $(BUILD)/ + $(L0)"unpack ndk"$(L1) cd projects && lha xf ../download/NDK39.lha $(L2) + @touch -t 0001010000 download/NDK39.lha + $(L0)"patch ndk"$(L1) for i in $$(find patches/NDK_3.9/ -type f); do \ + if [[ "$$i" == *.diff ]] ; \ then j=$${i:8}; patch -N "projects/$${j%.diff}" "$$i"; \ - else cp -pv "$$i" "projects/$${i:8}"; fi ; done - touch projects/NDK_3.9.info + else cp -pv "$$i" "projects/$${i:8}"; fi ; done $(L2) + @touch projects/NDK_3.9.info download/NDK39.lha: - mkdir -p download - cd download && wget http://www.haage-partner.de/download/AmigaOS/NDK39.lha + @mkdir -p download + @cd download && wget http://www.haage-partner.de/download/AmigaOS/NDK39.lha # ================================================= @@ -597,38 +626,38 @@ download/NDK39.lha: ndk13: $(BUILD)/ndk-include/_ndk13 $(BUILD)/ndk-include/_ndk13: $(BUILD)/ndk-include/_ndk - while read p; do mkdir -p $(PREFIX)/m68k-amigaos/ndk13-include/$$(dirname $$p); cp $(PREFIX)/m68k-amigaos/ndk-include/$$p $(PREFIX)/m68k-amigaos/ndk13-include/$$p; done < patches/ndk13/hfiles - while read p; do \ + @while read p; do mkdir -p $(PREFIX)/m68k-amigaos/ndk13-include/$$(dirname $$p); cp $(PREFIX)/m68k-amigaos/ndk-include/$$p $(PREFIX)/m68k-amigaos/ndk13-include/$$p; done < patches/ndk13/hfiles + $(L0)"extract ndk13"$(L1) while read p; do \ mkdir -p $(PREFIX)/m68k-amigaos/ndk13-include/$$(dirname $$p); \ if grep V36 $(PREFIX)/m68k-amigaos/ndk-include/$$p; then \ LC_CTYPE=C sed -n -e '/#ifndef CLIB/,/V36/p' $(PREFIX)/m68k-amigaos/ndk-include/$$p >$(PREFIX)/m68k-amigaos/ndk13-include/$$p; \ echo -e "#ifdef __cplusplus\n}\n#endif /* __cplusplus */\n#endif" >>$(PREFIX)/m68k-amigaos/ndk13-include/$$p; \ else cp $(PREFIX)/m68k-amigaos/ndk-include/$$p $(PREFIX)/m68k-amigaos/ndk13-include/$$p; fi \ - done < patches/ndk13/chfiles - while read p; do mkdir -p $(PREFIX)/m68k-amigaos/ndk13-include/$$(dirname $$p); echo "" >$(PREFIX)/m68k-amigaos/ndk13-include/$$p; done < patches/ndk13/ehfiles - echo '#undef EXECNAME' > $(PREFIX)/m68k-amigaos/ndk13-include/exec/execname.h - echo '#define EXECNAME "exec.library"' >> $(PREFIX)/m68k-amigaos/ndk13-include/exec/execname.h - mkdir -p $(PREFIX)/m68k-amigaos/ndk/lib/fd13 - while read p; do LC_CTYPE=C sed -n -e '/##base/,/V36/P' $(PREFIX)/m68k-amigaos/ndk/lib/fd/$$p >$(PREFIX)/m68k-amigaos/ndk/lib/fd13/$$p; done < patches/ndk13/fdfiles - mkdir -p $(PREFIX)/m68k-amigaos/ndk/lib/sfd13 - for i in $(PREFIX)/m68k-amigaos/ndk/lib/fd13/*; do fd2sfd $$i $(PREFIX)/m68k-amigaos/ndk13-include/clib/$$(basename $$i _lib.fd)_protos.h > $(PREFIX)/m68k-amigaos/ndk/lib/sfd13/$$(basename $$i .fd).sfd; done - for i in $(PREFIX)/m68k-amigaos/ndk/lib/sfd13/*; do \ + done < patches/ndk13/chfiles $(L2) + @while read p; do mkdir -p $(PREFIX)/m68k-amigaos/ndk13-include/$$(dirname $$p); echo "" >$(PREFIX)/m68k-amigaos/ndk13-include/$$p; done < patches/ndk13/ehfiles + @echo '#undef EXECNAME' > $(PREFIX)/m68k-amigaos/ndk13-include/exec/execname.h + @echo '#define EXECNAME "exec.library"' >> $(PREFIX)/m68k-amigaos/ndk13-include/exec/execname.h + @mkdir -p $(PREFIX)/m68k-amigaos/ndk/lib/fd13 + @while read p; do LC_CTYPE=C sed -n -e '/##base/,/V36/P' $(PREFIX)/m68k-amigaos/ndk/lib/fd/$$p >$(PREFIX)/m68k-amigaos/ndk/lib/fd13/$$p; done < patches/ndk13/fdfiles + @mkdir -p $(PREFIX)/m68k-amigaos/ndk/lib/sfd13 + @for i in $(PREFIX)/m68k-amigaos/ndk/lib/fd13/*; do fd2sfd $$i $(PREFIX)/m68k-amigaos/ndk13-include/clib/$$(basename $$i _lib.fd)_protos.h > $(PREFIX)/m68k-amigaos/ndk/lib/sfd13/$$(basename $$i .fd).sfd; done + $(L0)"macros+protos ndk13"$(L1) for i in $(PREFIX)/m68k-amigaos/ndk/lib/sfd13/*; do \ sfdc --target=m68k-amigaos --mode=macros --output=$(PREFIX)/m68k-amigaos/ndk13-include/inline/$$(basename $$i _lib.sfd).h $$i; \ sfdc --target=m68k-amigaos --mode=proto --output=$(PREFIX)/m68k-amigaos/ndk13-include/proto/$$(basename $$i _lib.sfd).h $$i; \ - done - echo "done" >$@ + done $(L2) + @echo "done" >$@ # ================================================= # netinclude # ================================================= $(BUILD)/_netinclude: projects/amiga-netinclude/README.md $(BUILD)/ndk-include/_ndk $(shell find 2>/dev/null projects/amiga-netinclude/include -type f) - mkdir -p $(PREFIX)/m68k-amigaos/ndk-include - rsync -a $(PWD)/projects/amiga-netinclude/include/* $(PREFIX)/m68k-amigaos/ndk-include - echo "done" >$@ + @mkdir -p $(PREFIX)/m68k-amigaos/ndk-include + @rsync -a $(PWD)/projects/amiga-netinclude/include/* $(PREFIX)/m68k-amigaos/ndk-include + @echo "done" >$@ projects/amiga-netinclude/README.md: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/bebbo/amiga-netinclude + @cd projects && git clone -b master --depth 4 https://github.com/bebbo/amiga-netinclude # ================================================= # libamiga @@ -639,8 +668,8 @@ libamiga: $(LIBAMIGA) @echo "built $(LIBAMIGA)" $(LIBAMIGA): - mkdir -p $(@D) - cp -p $(patsubst $(PREFIX)/m68k-amigaos/%,%,$@) $(@D) + @mkdir -p $(@D) + @cp -p $(patsubst $(PREFIX)/m68k-amigaos/%,%,$@) $(@D) # ================================================= # libnix @@ -653,31 +682,30 @@ LIBNIX_SRC = $(shell find 2>/dev/null projects/libnix -not \( -path projects/lib libnix: $(BUILD)/libnix/_done $(BUILD)/libnix/_done: $(BUILD)/libnix/Makefile - $(MAKE) -C $(BUILD)/libnix $(LOG) - $(MAKE) -C $(BUILD)/libnix install $(LOG) - cd $(BUILD)/newlib/complex && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/libnix/lib/libm.a $(COMPLEX_FILES) - cd $(BUILD)/newlib/complex/libb && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/libnix/lib/libb/libm.a $(COMPLEX_FILES) - cd $(BUILD)/newlib/complex/libm020 && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/libnix/lib/libm020/libm.a $(COMPLEX_FILES) - cd $(BUILD)/newlib/complex/libm020/libb && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/libnix/lib/libm020/libb/libm.a $(COMPLEX_FILES) - cd $(BUILD)/newlib/complex/libm020/libb32 && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/libnix/lib/libm020/libb32/libm.a $(COMPLEX_FILES) + $(L0)"make libnix"$(L1) $(MAKE) -C $(BUILD)/libnix $(L2) + $(L0)"install libnix"$(L1) $(MAKE) -C $(BUILD)/libnix install $(L2) + @cd $(BUILD)/newlib/complex && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/libnix/lib/libm.a $(COMPLEX_FILES) + @cd $(BUILD)/newlib/complex/libb && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/libnix/lib/libb/libm.a $(COMPLEX_FILES) + @cd $(BUILD)/newlib/complex/libm020 && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/libnix/lib/libm020/libm.a $(COMPLEX_FILES) + @cd $(BUILD)/newlib/complex/libm020/libb && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/libnix/lib/libm020/libb/libm.a $(COMPLEX_FILES) + @cd $(BUILD)/newlib/complex/libm020/libb32 && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/libnix/lib/libm020/libb32/libm.a $(COMPLEX_FILES) @echo "done" >$@ - @echo "built $(LIBNIX)" $(BUILD)/libnix/Makefile: $(BUILD)/newlib/_done $(BUILD)/ndk-include/_ndk $(BUILD)/ndk-include/_ndk13 $(BUILD)/_netinclude $(BUILD)/binutils/_done $(BUILD)/gcc/_done projects/libnix/configure projects/libnix/Makefile.in $(LIBAMIGA) $(LIBNIX_SRC) - mkdir -p $(PREFIX)/m68k-amigaos/libnix/lib/libnix - mkdir -p $(BUILD)/libnix - echo 'void foo(){}' > $(BUILD)/libnix/x.c - if [ ! -e $(PREFIX)/m68k-amigaos/lib/libstubs.a ]; then $(PREFIX)/bin/m68k-amigaos-ar r $(PREFIX)/m68k-amigaos/lib/libstubs.a; fi - mkdir -p $(PREFIX)/lib/gcc/m68k-amigaos/$(GCC_VERSION) - if [ ! -e $(PREFIX)/lib/gcc/m68k-amigaos/$(GCC_VERSION)/libgcc.a ]; then $(PREFIX)/bin/m68k-amigaos-ar r $(PREFIX)/lib/gcc/m68k-amigaos/$(GCC_VERSION)/libgcc.a; fi - cd $(BUILD)/libnix && CFLAGS="$(TARGET_C_FLAGS)" AR=m68k-amigaos-ar AS=m68k-amigaos-as CC=m68k-amigaos-gcc $(A) $(PWD)/projects/libnix/configure $(CONFIG_LIBNIX) $(LOG) - mkdir -p $(PREFIX)/m68k-amigaos/libnix/include/ - rsync -a projects/libnix/sources/headers/* $(PREFIX)/m68k-amigaos/libnix/include/ - touch $(BUILD)/libnix/Makefile + @mkdir -p $(PREFIX)/m68k-amigaos/libnix/lib/libnix + @mkdir -p $(BUILD)/libnix + @echo 'void foo(){}' > $(BUILD)/libnix/x.c + @if [ ! -e $(PREFIX)/m68k-amigaos/lib/libstubs.a ]; then $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/lib/libstubs.a; fi + @mkdir -p $(PREFIX)/lib/gcc/m68k-amigaos/$(GCC_VERSION) + @if [ ! -e $(PREFIX)/lib/gcc/m68k-amigaos/$(GCC_VERSION)/libgcc.a ]; then $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/lib/gcc/m68k-amigaos/$(GCC_VERSION)/libgcc.a; fi + $(L0)"configure libnix"$(L1) cd $(BUILD)/libnix && CFLAGS="$(TARGET_C_FLAGS)" AR=m68k-amigaos-ar AS=m68k-amigaos-as CC=m68k-amigaos-gcc $(A) $(PWD)/projects/libnix/configure $(CONFIG_LIBNIX) $(L2) + @mkdir -p $(PREFIX)/m68k-amigaos/libnix/include/ + @rsync -a projects/libnix/sources/headers/* $(PREFIX)/m68k-amigaos/libnix/include/ + @touch $(BUILD)/libnix/Makefile projects/libnix/configure: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/bebbo/libnix + @cd projects && git clone -b master --depth 4 https://github.com/bebbo/libnix # ================================================= # gcc libs @@ -688,10 +716,9 @@ LIBGCCS= $(patsubst %,$(PREFIX)/lib/gcc/m68k-amigaos/$(GCC_VERSION)/%,$(LIBGCCS_ libgcc: $(BUILD)/gcc/_libgcc_done $(BUILD)/gcc/_libgcc_done: $(BUILD)/libnix/_done $(LIBAMIGA) - $(MAKE) -C $(BUILD)/gcc all-target $(LOG) - $(MAKE) -C $(BUILD)/gcc install-target $(LOG) - echo "done" >$@ - echo "$(LIBGCCS)" + $(L0)"make libgcc"$(L1) $(MAKE) -C $(BUILD)/gcc all-target $(L2) + $(L0)"install libgcc"$(L1) $(MAKE) -C $(BUILD)/gcc install-target $(L2) + @echo "done" >$@ # ================================================= # clib2 @@ -700,23 +727,23 @@ $(BUILD)/gcc/_libgcc_done: $(BUILD)/libnix/_done $(LIBAMIGA) clib2: $(BUILD)/clib2/_done $(BUILD)/clib2/_done: projects/clib2/LICENSE $(shell find 2>/dev/null projects/clib2 -not \( -path projects/clib2/.git -prune \) -type f) $(BUILD)/libnix/Makefile $(LIBAMIGA) - mkdir -p $(BUILD)/clib2/ - rsync -a projects/clib2/library/* $(BUILD)/clib2 - cd $(BUILD)/clib2 && find * -name lib\*.a -delete - $(MAKE) -C $(BUILD)/clib2 -f GNUmakefile.68k $(LOG) - mkdir -p $(PREFIX)/m68k-amigaos/clib2 - rsync -a $(BUILD)/clib2/include $(PREFIX)/m68k-amigaos/clib2 - rsync -a $(BUILD)/clib2/lib $(PREFIX)/m68k-amigaos/clib2 - cd $(BUILD)/newlib/complex && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/clib2/lib/libm.a $(COMPLEX_FILES) - cd $(BUILD)/newlib/complex/libb && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/clib2/lib/libb/libm.a $(COMPLEX_FILES) - cd $(BUILD)/newlib/complex/libm020 && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/clib2/lib/libm020/libm.a $(COMPLEX_FILES) - cd $(BUILD)/newlib/complex/libm020/libb && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/clib2/lib/libm020/libb/libm.a $(COMPLEX_FILES) - cd $(BUILD)/newlib/complex/libm020/libb32 && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/clib2/lib/libm020/libb32/libm.a $(COMPLEX_FILES) - echo "done" >$@ + @mkdir -p $(BUILD)/clib2/ + @rsync -a projects/clib2/library/* $(BUILD)/clib2 + @cd $(BUILD)/clib2 && find * -name lib\*.a -delete + $(L0)"make clib2"$(L1) $(MAKE) -C $(BUILD)/clib2 -f GNUmakefile.68k $(L2) + @mkdir -p $(PREFIX)/m68k-amigaos/clib2 + @rsync -a $(BUILD)/clib2/include $(PREFIX)/m68k-amigaos/clib2 + @rsync -a $(BUILD)/clib2/lib $(PREFIX)/m68k-amigaos/clib2 + @cd $(BUILD)/newlib/complex && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/clib2/lib/libm.a $(COMPLEX_FILES) + @cd $(BUILD)/newlib/complex/libb && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/clib2/lib/libb/libm.a $(COMPLEX_FILES) + @cd $(BUILD)/newlib/complex/libm020 && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/clib2/lib/libm020/libm.a $(COMPLEX_FILES) + @cd $(BUILD)/newlib/complex/libm020/libb && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/clib2/lib/libm020/libb/libm.a $(COMPLEX_FILES) + @cd $(BUILD)/newlib/complex/libm020/libb32 && $(PREFIX)/bin/m68k-amigaos-ar rcs $(PREFIX)/m68k-amigaos/clib2/lib/libm020/libb32/libm.a $(COMPLEX_FILES) + @echo "done" >$@ projects/clib2/LICENSE: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/bebbo/clib2 + @cd projects && git clone -b master --depth 4 https://github.com/bebbo/clib2 # ================================================= # libdebug @@ -726,18 +753,18 @@ CONFIG_LIBDEBUG = --prefix=$(PREFIX) --target=m68k-amigaos --host=m68k-amigaos libdebug: $(BUILD)/libdebug/_done $(BUILD)/libdebug/_done: $(BUILD)/libdebug/Makefile - $(MAKE) -C $(BUILD)/libdebug $(LOG) - cp $(BUILD)/libdebug/libdebug.a $(PREFIX)/m68k-amigaos/lib/ - echo "done" >$@ + $(L0)"make libdebug"$(L1) $(MAKE) -C $(BUILD)/libdebug $(L2) + @cp $(BUILD)/libdebug/libdebug.a $(PREFIX)/m68k-amigaos/lib/ + @echo "done" >$@ $(BUILD)/libdebug/Makefile: $(BUILD)/libnix/_done projects/libdebug/configure $(shell find 2>/dev/null projects/libdebug -not \( -path projects/libdebug/.git -prune \) -type f) - mkdir -p $(BUILD)/libdebug - cd $(BUILD)/libdebug && CFLAGS="$(TARGET_C_FLAGS)" $(PWD)/projects/libdebug/configure $(CONFIG_LIBDEBUG) $(LOG) + @mkdir -p $(BUILD)/libdebug + @cd $(BUILD)/libdebug && CFLAGS="$(TARGET_C_FLAGS)" $(PWD)/projects/libdebug/configure $(CONFIG_LIBDEBUG) projects/libdebug/configure: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/bebbo/libdebug - touch -t 0001010000 projects/libdebug/configure.ac + @cd projects && git clone -b master --depth 4 https://github.com/bebbo/libdebug + @touch -t 0001010000 projects/libdebug/configure.ac # ================================================= # libsdl @@ -747,25 +774,25 @@ CONFIG_LIBSDL12 = PREFX=$(PREFIX) PREF=$(PREFIX) libSDL12: $(BUILD)/libSDL12/_done $(BUILD)/libSDL12/_done: $(BUILD)/libSDL12/Makefile.bax - $(MAKE) sdk=ahi $(LOG) - $(MAKE) sdk=cgx $(LOG) - cd $(BUILD)/libSDL12 && CFLAGS="$(TARGET_C_FLAGS)" $(MAKE) -f Makefile.bax $(CONFIG_LIBSDL12) $(LOG) - cp $(BUILD)/libSDL12/libSDL.a $(PREFIX)/m68k-amigaos/lib/ - mkdir -p $(PREFIX)/include/GL - mkdir -p $(PREFIX)/include/SDL - rsync -a $(BUILD)/libSDL12/include/GL/*.i $(PREFIX)/include/GL/ - rsync -a $(BUILD)/libSDL12/include/GL/*.h $(PREFIX)/include/GL/ - rsync -a $(BUILD)/libSDL12/include/SDL/*.h $(PREFIX)/include/SDL/ - echo "done" >$@ + $(MAKE) sdk=ahi + $(MAKE) sdk=cgx + $(L0)"make libSDL12"$(L1) cd $(BUILD)/libSDL12 && CFLAGS="$(TARGET_C_FLAGS)" $(MAKE) -f Makefile.bax $(CONFIG_LIBSDL12) $(L2) + $(L0)"install libSDL12"$(L1) cp $(BUILD)/libSDL12/libSDL.a $(PREFIX)/m68k-amigaos/lib/ $(L2) + @mkdir -p $(PREFIX)/include/GL + @mkdir -p $(PREFIX)/include/SDL + @rsync -a $(BUILD)/libSDL12/include/GL/*.i $(PREFIX)/include/GL/ + @rsync -a $(BUILD)/libSDL12/include/GL/*.h $(PREFIX)/include/GL/ + @rsync -a $(BUILD)/libSDL12/include/SDL/*.h $(PREFIX)/include/SDL/ + @echo "done" >$@ $(BUILD)/libSDL12/Makefile.bax: $(BUILD)/libnix/_done projects/libSDL12/Makefile.bax $(shell find 2>/dev/null projects/libSDL12 -not \( -path projects/libSDL12/.git -prune \) -type f) - mkdir -p $(BUILD)/libSDL12 - rsync -a projects/libSDL12/* $(BUILD)/libSDL12 - touch $(BUILD)/libSDL12/Makefile.bax + @mkdir -p $(BUILD)/libSDL12 + @rsync -a projects/libSDL12/* $(BUILD)/libSDL12 + @touch $(BUILD)/libSDL12/Makefile.bax projects/libSDL12/Makefile.bax: @mkdir -p projects - cd projects && git clone -b master --depth 4 https://github.com/AmigaPorts/libSDL12 + @cd projects && git clone -b master --depth 4 https://github.com/AmigaPorts/libSDL12 # ================================================= @@ -783,48 +810,48 @@ COMPLEX_FILES = lib_a-cabs.o lib_a-cacosf.o lib_a-cacosl.o lib_a-casin.o lib_a-cacos.o lib_a-cacoshl.o lib_a-cargl.o lib_a-casinhf.o lib_a-catanf.o lib_a-catanl.o lib_a-ccoshf.o lib_a-cephes_subrf.o lib_a-cexpl.o lib_a-clog.o lib_a-clogl.o lib_a-cpow.o lib_a-cprojf.o lib_a-creall.o lib_a-csinhf.o lib_a-csqrtf.o lib_a-ctanh.o $(BUILD)/newlib/_done: $(BUILD)/newlib/newlib/libc.a - echo "done" >$@ + @echo "done" >$@ $(BUILD)/newlib/newlib/libc.a: $(BUILD)/newlib/newlib/Makefile $(BUILD)/ndk-include/_ndk $(NEWLIB_FILES) - $(MAKE) -C $(BUILD)/newlib/newlib $(LOG) - $(MAKE) -C $(BUILD)/newlib/newlib install $(LOG) - mkdir -p $(BUILD)/newlib/complex - cd $(BUILD)/newlib/complex && $(PREFIX)/bin/m68k-amigaos-ar x $(PREFIX)/m68k-amigaos/lib/libm.a $(COMPLEX_FILES) - mkdir -p $(BUILD)/newlib/complex/libb - cd $(BUILD)/newlib/complex/libb && $(PREFIX)/bin/m68k-amigaos-ar x $(PREFIX)/m68k-amigaos/lib/libb/libm.a $(COMPLEX_FILES) - mkdir -p $(BUILD)/newlib/complex/libm020 - cd $(BUILD)/newlib/complex/libm020 && $(PREFIX)/bin/m68k-amigaos-ar x $(PREFIX)/m68k-amigaos/lib/libm020/libm.a $(COMPLEX_FILES) - mkdir -p $(BUILD)/newlib/complex/libm020/libb - cd $(BUILD)/newlib/complex/libm020/libb && $(PREFIX)/bin/m68k-amigaos-ar x $(PREFIX)/m68k-amigaos/lib/libm020/libb/libm.a $(COMPLEX_FILES) - mkdir -p $(BUILD)/newlib/complex/libm020/libb32 - cd $(BUILD)/newlib/complex/libm020/libb32 && $(PREFIX)/bin/m68k-amigaos-ar x $(PREFIX)/m68k-amigaos/lib/libm020/libb32/libm.a $(COMPLEX_FILES) - touch $@ + $(L0)"make newlib"$(L1) $(MAKE) -C $(BUILD)/newlib/newlib $(L2) + $(L0)"install newlib"$(L1) $(MAKE) -C $(BUILD)/newlib/newlib install $(L2) + @mkdir -p $(BUILD)/newlib/complex + @cd $(BUILD)/newlib/complex && $(PREFIX)/bin/m68k-amigaos-ar x $(PREFIX)/m68k-amigaos/lib/libm.a $(COMPLEX_FILES) + @mkdir -p $(BUILD)/newlib/complex/libb + @cd $(BUILD)/newlib/complex/libb && $(PREFIX)/bin/m68k-amigaos-ar x $(PREFIX)/m68k-amigaos/lib/libb/libm.a $(COMPLEX_FILES) + @mkdir -p $(BUILD)/newlib/complex/libm020 + @cd $(BUILD)/newlib/complex/libm020 && $(PREFIX)/bin/m68k-amigaos-ar x $(PREFIX)/m68k-amigaos/lib/libm020/libm.a $(COMPLEX_FILES) + @mkdir -p $(BUILD)/newlib/complex/libm020/libb + @cd $(BUILD)/newlib/complex/libm020/libb && $(PREFIX)/bin/m68k-amigaos-ar x $(PREFIX)/m68k-amigaos/lib/libm020/libb/libm.a $(COMPLEX_FILES) + @mkdir -p $(BUILD)/newlib/complex/libm020/libb32 + @cd $(BUILD)/newlib/complex/libm020/libb32 && $(PREFIX)/bin/m68k-amigaos-ar x $(PREFIX)/m68k-amigaos/lib/libm020/libb32/libm.a $(COMPLEX_FILES) + @touch $@ ifeq (,$(wildcard $(BUILD)/gcc/_done)) $(BUILD)/newlib/newlib/Makefile: $(BUILD)/gcc/_done endif $(BUILD)/newlib/newlib/Makefile: projects/newlib-cygwin/configure - mkdir -p $(BUILD)/newlib/newlib - cd $(BUILD)/newlib/newlib && $(NEWLIB_CONFIG) CFLAGS="$(TARGET_C_FLAGS)" $(PWD)/projects/newlib-cygwin/newlib/configure --host=m68k-amigaos --prefix=$(PREFIX) $(LOG) + @mkdir -p $(BUILD)/newlib/newlib + $(L0)"configure newlib"$(L1) cd $(BUILD)/newlib/newlib && $(NEWLIB_CONFIG) CFLAGS="$(TARGET_C_FLAGS)" $(PWD)/projects/newlib-cygwin/newlib/configure --host=m68k-amigaos --prefix=$(PREFIX) $(L2) projects/newlib-cygwin/newlib/configure: @mkdir -p projects - cd projects && git clone -b amiga --depth 4 https://github.com/bebbo/newlib-cygwin + @cd projects && git clone -b amiga --depth 4 https://github.com/bebbo/newlib-cygwin # ================================================= # ixemul # ================================================= projects/ixemul/configure: @mkdir -p projects - cd projects && git clone https://github.com/bebbo/ixemul + @cd projects && git clone https://github.com/bebbo/ixemul # ================================================= # sdk installation # ================================================= .PHONY: sdk all-sdk -sdk: libnix - @$(PWD)/sdk/install install $(sdk) $(PREFIX) +sdk: libnix $(BUILD)/lha/_done + $(L0)"sdk $(sdk)"$(L1) $(PWD)/sdk/install install $(sdk) $(PREFIX) $(L2) SDKS0=$(shell find sdk/*.sdk) SDKS=$(patsubst sdk/%.sdk,%,$(SDKS0)) @@ -832,7 +859,7 @@ SDKS=$(patsubst sdk/%.sdk,%,$(SDKS0)) all-sdk: $(SDKS) $(SDKS): libnix - $(MAKE) sdk=$@ $(LOG) + $(MAKE) sdk=$@ # ================================================= # info # ================================================= diff --git a/sdk/install b/sdk/install index 36c7cf1..fca1d94 100755 --- a/sdk/install +++ b/sdk/install @@ -30,10 +30,10 @@ case $1 in echo wget ${a[1]}:${a[2]} -O download/$file wget ${a[1]}:${a[2]} -O download/$file || (rm download/$file; exit 1) fi - if [ ! -e "build/$2" ]; then - mkdir build/$2 + if [ ! -e "build/$2" ] || [ "$(ls -l build/$2)" == "total 0" ]; then + mkdir -p build/$2 pushd build/$2 - lha x "../../download/$file" + lha x "../../download/$file" && $3/bin/lha x "../../download/$file" popd fi fi