From e8ea2d8c2cf1cc6b0775f00138db0dbf3b08bdd3 Mon Sep 17 00:00:00 2001 From: bebbo Date: Wed, 24 Oct 2018 10:57:11 +0200 Subject: [PATCH] simple vars, unpack NDK during update --- Makefile | 108 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 55 insertions(+), 53 deletions(-) diff --git a/Makefile b/Makefile index d6cb814..5b2754d 100644 --- a/Makefile +++ b/Makefile @@ -14,40 +14,40 @@ PREFIX ?= /opt/amiga export PATH := $(PREFIX)/bin:$(PATH) UNAME_S := $(shell uname -s) -BUILD ?= build-$(UNAME_S) +BUILD := build-$(UNAME_S) -GCC_GIT ?= https://github.com/bebbo/gcc -GCC_BRANCH ?= gcc-6-branch +GCC_GIT := https://github.com/bebbo/gcc +GCC_BRANCH := gcc-6-branch GCC_VERSION ?= $(shell cat 2>/dev/null projects/gcc/gcc/BASE-VER) -BINUTILS_GIT ?= https://github.com/bebbo/binutils-gdb -BINUTILS_BRANCH ?= amiga +BINUTILS_GIT := https://github.com/bebbo/binutils-gdb +BINUTILS_BRANCH := amiga -CFLAGS?=-Os -CXXFLAGS?=$(CFLAGS) -CFLAGS_FOR_TARGET?=-Os -fomit-frame-pointer +CFLAGS := -Os +CXXFLAGS := $(CFLAGS) +CFLAGS_FOR_TARGET := -Os -fomit-frame-pointer E:=CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CFLAGS_FOR_BUILD="$(CFLAGS)" CXXFLAGS_FOR_BUILD="$(CXXFLAGS)" CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" CXXFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" # ================================================= # determine exe extension for cygwin -$(eval MYMAKE = $(shell which make) ) +$(eval MYMAKE = $(shell which make 2>/dev/null) ) $(eval MYMAKEEXE = $(shell which "$(MYMAKE:%=%.exe)" 2>/dev/null) ) -EXEEXT=$(MYMAKEEXE:%=.exe) +EXEEXT:=$(MYMAKEEXE:%=.exe) # Files for GMP, MPC and MPFR -GMP ?= gmp-6.1.2 +GMP := gmp-6.1.2 GMPFILE := $(GMP).tar.bz2 -MPC ?= mpc-1.0.3 +MPC := mpc-1.0.3 MPCFILE := $(MPC).tar.gz -MPFR ?= mpfr-3.1.6 +MPFR := mpfr-3.1.6 MPFRFILE := $(MPFR).tar.bz2 # ================================================= # pretty output ^^ # ================================================= -TEEEE ?= >& +TEEEE := >& ifeq ($(sdk),) __LINIT := $(shell rm .state 2>/dev/null) @@ -55,9 +55,9 @@ endif $(eval has_flock = $(shell which flock 2>/dev/null)) ifeq ($(has_flock),) -FLOCK = echo >/dev/null +FLOCK := echo >/dev/null else -FLOCK = $(has_flock) +FLOCK := $(has_flock) endif L0 = @__p= @@ -73,6 +73,7 @@ L2 = )$(TEEEE) "$$__l"; __r=$$?; ($(FLOCK) 200; if (( $$__r > 0 )); then \ ;grep -v "$$__p" .state >.state0 2>/dev/null; mv .state0 .state ;echo -n $$(cat .state | paste -sd " " -); ) 200>.lock; [[ $$__r -gt 0 ]] && exit $$__r; echo -n "" else L1 = ; +L2 = ; endif # ================================================= @@ -121,7 +122,7 @@ endif 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 - mkdir $(BUILD) + mkdir -p $(BUILD) clean-gcc: rm -rf $(BUILD)/gcc @@ -203,11 +204,10 @@ 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 - GCC_VERSION=$(shell cat 2>/dev/null projects/gcc/gcc/BASE-VER) + @cd projects/gcc && git pull || (export DEPTH=16; while true; do echo "trying depth=$$DEPTH"; git pull --depth $$DEPTH && break; export DEPTH=$$(($$DEPTH+$$DEPTH));done) update-binutils: projects/binutils/configure - @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 && git pull || (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 @@ -246,6 +246,8 @@ update-libSDL12: projects/libSDL12/Makefile.bax @cd projects/libSDL12 && git pull update-ndk: download/NDK39.lha + mkdir -p $(BUILD) + make projects/NDK_3.9.info update-newlib: projects/newlib-cygwin/newlib/configure @cd projects/newlib-cygwin && git pull @@ -286,18 +288,18 @@ status-all: # ================================================= # binutils # ================================================= -CONFIG_BINUTILS=--prefix=$(PREFIX) --target=m68k-amigaos --disable-plugins --disable-werror --enable-tui --disable-nls -BINUTILS_CMD = m68k-amigaos-addr2line m68k-amigaos-ar m68k-amigaos-as m68k-amigaos-c++filt \ +CONFIG_BINUTILS :=--prefix=$(PREFIX) --target=m68k-amigaos --disable-plugins --disable-werror --enable-tui --disable-nls +BINUTILS_CMD := m68k-amigaos-addr2line m68k-amigaos-ar m68k-amigaos-as m68k-amigaos-c++filt \ m68k-amigaos-ld m68k-amigaos-nm m68k-amigaos-objcopy m68k-amigaos-objdump m68k-amigaos-ranlib \ m68k-amigaos-readelf m68k-amigaos-size m68k-amigaos-strings m68k-amigaos-strip -BINUTILS = $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(BINUTILS_CMD)) +BINUTILS := $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(BINUTILS_CMD)) -BINUTILS_DIR = . bfd gas ld binutils opcodes -BINUTILSD = $(patsubst %,projects/binutils/%, $(BINUTILS_DIR)) +BINUTILS_DIR := . bfd gas ld binutils opcodes +BINUTILSD := $(patsubst %,projects/binutils/%, $(BINUTILS_DIR)) ifeq ($(findstring Darwin,$(shell uname)),) -ALL_GDB = all-gdb -INSTALL_GDB = install-gdb +ALL_GDB := all-gdb +INSTALL_GDB := install-gdb endif binutils: $(BUILD)/binutils/_done @@ -323,18 +325,18 @@ projects/binutils/configure: # ================================================= # gcc # ================================================= -CONFIG_GCC=--prefix=$(PREFIX) --target=m68k-amigaos --enable-languages=c,c++,objc --enable-version-specific-runtime-libs --disable-libssp --disable-nls \ +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 \ --with-stage1-ldflags="-dynamic-libgcc -dynamic-libstdc++" --with-boot-ldflags="-dynamic-libgcc -dynamic-libstdc++" -GCC_CMD = m68k-amigaos-c++ m68k-amigaos-g++ m68k-amigaos-gcc-$(GCC_VERSION) m68k-amigaos-gcc-nm \ +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 := $(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_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 @@ -362,7 +364,7 @@ projects/gcc/configure: # ================================================= # gprof # ================================================= -CONFIG_GRPOF = --prefix=$(PREFIX) --target=m68k-amigaos --disable-werror +CONFIG_GRPOF := --prefix=$(PREFIX) --target=m68k-amigaos --disable-werror gprof: $(BUILD)/binutils/_gprof @@ -378,7 +380,7 @@ $(BUILD)/binutils/gprof/Makefile: projects/binutils/gprof/configure $(BUILD)/bin # ================================================= # fd2sfd # ================================================= -CONFIG_FD2SFD = --prefix=$(PREFIX) --target=m68k-amigaos +CONFIG_FD2SFD := --prefix=$(PREFIX) --target=m68k-amigaos fd2sfd: $(BUILD)/fd2sfd/_done @@ -444,7 +446,7 @@ projects/ira/Makefile: # ================================================= # sfdc # ================================================= -CONFIG_SFDC = --prefix=$(PREFIX) --target=m68k-amigaos +CONFIG_SFDC := --prefix=$(PREFIX) --target=m68k-amigaos sfdc: $(BUILD)/sfdc/_done @@ -470,8 +472,8 @@ projects/sfdc/configure: # ================================================= # vasm # ================================================= -VASM_CMD = vasmm68k_mot -VASM = $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(VASM_CMD)) +VASM_CMD := vasmm68k_mot +VASM := $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(VASM_CMD)) vasm: $(BUILD)/vasm/_done @@ -493,8 +495,8 @@ projects/vasm/Makefile: # ================================================= # vbcc # ================================================= -VBCC_CMD = vbccm68k vprof vc -VBCC = $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(VBCC_CMD)) +VBCC_CMD := vbccm68k vprof vc +VBCC := $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(VBCC_CMD)) vbcc: $(BUILD)/vbcc/_done @@ -520,8 +522,8 @@ projects/vbcc/Makefile: # ================================================= # vlink # ================================================= -VLINK_CMD = vlink -VLINK = $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(VLINK_CMD)) +VLINK_CMD := vlink +VLINK := $(patsubst %,$(PREFIX)/bin/%$(EXEEXT), $(VLINK_CMD)) vlink: $(BUILD)/vlink/_done vbcc-target @@ -542,9 +544,9 @@ projects/vlink/Makefile: lha: $(BUILD)/_lha_done $(BUILD)/_lha_done: - @if [ ! -e "$$(which lha)" ]; then \ + @if [ ! -e "$$(which lha 2>/dev/null)" ]; then \ cd $(BUILD) && rm -rf lha; \ - $(L0)"clone lha"$(L1) git clone https://github.com/jca02266/lha; $(L2); \ + $(L00)"clone lha"$(L1) git clone https://github.com/jca02266/lha; $(L2); \ cd lha; \ $(L00)"configure lha"$(L1) aclocal; autoheader; automake -a; autoconf; ./configure; $(L2); \ $(L00)"make lha"$(L1) make all; $(L2); \ @@ -625,18 +627,18 @@ ndk-proto: $(NDK_INCLUDE_PROTO) sfdc $(NDK_INCLUDE_PROTO): $(PREFIX)/bin/sfdc $(NDK_INCLUDE_SFD) $(BUILD)/ndk-include_proto $(BUILD)/ndk-include_ndk0 $(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: +$(BUILD)/ndk-include_inline: projects/NDK_3.9.info @mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/inline @mkdir -p $(BUILD)/ndk-include/ @echo "done" >$@ -$(BUILD)/ndk-include_lvo: +$(BUILD)/ndk-include_lvo: projects/NDK_3.9.info @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: +$(BUILD)/ndk-include_proto: projects/NDK_3.9.info @mkdir -p $(PREFIX)/m68k-amigaos/ndk-include/proto @mkdir -p $(PREFIX)/m68k-amigaos/ndk13-include/proto @mkdir -p $(BUILD)/ndk-include/ @@ -701,7 +703,7 @@ projects/amiga-netinclude/README.md: # ================================================= # libamiga # ================================================= -LIBAMIGA=$(PREFIX)/m68k-amigaos/lib/libamiga.a $(PREFIX)/m68k-amigaos/lib/libb/libamiga.a +LIBAMIGA := $(PREFIX)/m68k-amigaos/lib/libamiga.a $(PREFIX)/m68k-amigaos/lib/libb/libamiga.a libamiga: $(LIBAMIGA) @echo "built $(LIBAMIGA)" @@ -714,7 +716,7 @@ $(LIBAMIGA): # libnix # ================================================= -CONFIG_LIBNIX = --prefix=$(PREFIX)/m68k-amigaos/libnix --target=m68k-amigaos --host=m68k-amigaos +CONFIG_LIBNIX := --prefix=$(PREFIX)/m68k-amigaos/libnix --target=m68k-amigaos --host=m68k-amigaos LIBNIX_SRC = $(shell find 2>/dev/null projects/libnix -not \( -path projects/libnix/.git -prune \) -not \( -path projects/libnix/sources/stubs/libbases -prune \) -not \( -path projects/libnix/sources/stubs/libnames -prune \) -type f) @@ -749,8 +751,8 @@ projects/libnix/configure: # ================================================= # gcc libs # ================================================= -LIBGCCS_NAMES=libgcov.a libstdc++.a libsupc++.a -LIBGCCS= $(patsubst %,$(PREFIX)/lib/gcc/m68k-amigaos/$(GCC_VERSION)/%,$(LIBGCCS_NAMES)) +LIBGCCS_NAMES := libgcov.a libstdc++.a libsupc++.a +LIBGCCS := $(patsubst %,$(PREFIX)/lib/gcc/m68k-amigaos/$(GCC_VERSION)/%,$(LIBGCCS_NAMES)) libgcc: $(BUILD)/gcc/_libgcc_done @@ -787,7 +789,7 @@ projects/clib2/LICENSE: # ================================================= # libdebug # ================================================= -CONFIG_LIBDEBUG = --prefix=$(PREFIX) --target=m68k-amigaos --host=m68k-amigaos +CONFIG_LIBDEBUG := --prefix=$(PREFIX) --target=m68k-amigaos --host=m68k-amigaos libdebug: $(BUILD)/libdebug/_done @@ -808,7 +810,7 @@ projects/libdebug/configure: # ================================================= # libsdl # ================================================= -CONFIG_LIBSDL12 = PREFX=$(PREFIX) PREF=$(PREFIX) +CONFIG_LIBSDL12 := PREFX=$(PREFIX) PREF=$(PREFIX) libSDL12: $(BUILD)/libSDL12/_done @@ -837,7 +839,7 @@ projects/libSDL12/Makefile.bax: # ================================================= # newlib # ================================================= -NEWLIB_CONFIG = CC=m68k-amigaos-gcc +NEWLIB_CONFIG := CC=m68k-amigaos-gcc NEWLIB_FILES = $(shell find 2>/dev/null projects/newlib-cygwin/newlib -type f) .PHONY: newlib