]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - lfs/cleanup-toolchain
slang: revert parallelized build
[ipfire-2.x.git] / lfs / cleanup-toolchain
index 79d5db40a8a9149ac4ba45d2691c0556e7aaea9b..f2e08d1e3e168140ad3d69fd0d62367fc33538d2 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -27,14 +27,15 @@ include Config
 VER        = ipfire
 
 THISAPP    = cleanup-toolchain
-TARGET     = $(DIR_INFO)/$(THISAPP)-$(PASS)-tools
 
-ifeq "$(MACHINE_TYPE)" "arm"
-       GCC_VER = 4.1.2
+ifeq "$(TOOLCHAIN)" "1"
+       TARGET = $(DIR_INFO)/$(THISAPP)-tools
 else
-       GCC_VER = 4.0.4
+       TARGET = $(DIR_INFO)/$(THISAPP)
 endif
 
+GCC_VER    = 4.1.2
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -55,31 +56,33 @@ md5 :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-ifeq "$(PASS)" "1"
-       mv -v /tools/bin/{ld,ld-old}
-       mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old}
-       cp -v /tools/bin/{ld-new,ld}
-       ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld
-       gcc -dumpspecs > /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs
-       sed 's@/lib/ld-linux.so@/tools&@g' /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs > tempspecfile
-       mv -vf tempspecfile /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs
-       find /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \;
-       rm -vf `grep -l "DO NOT EDIT THIS FILE" /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/*`
-endif
-ifeq "$(PASS)" "2"
-       -strip --strip-debug /tools/lib/*
-       -strip --strip-unneeded /tools/{,s}bin/*
-       rm -rfv /tools/{info,man} /usr/local/man
-       chown -R root:root /tools
-endif
-ifeq "$(PASS)" "3"
-       mv -v /tools/bin/{ld,ld-old}
-       mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old}
-       mv -v /tools/bin/{ld-new,ld}
-       ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld
-       gcc -dumpspecs | \
-       perl -p -e 's@/tools/lib/ld-linux.so@/lib/ld-linux.so@g;' \
-           -e 's@\*startfile_prefix_spec:\n@$$_/usr/lib/ @g;' > \
-           /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs
+
+ifeq "$(TOOLCHAIN)" "1"
+       # Remove the first cross compiler which is not needed anymore.
+       find $(TOOLS_DIR)/ -name "$(CROSSTARGET)*" | xargs rm -rfv
+
+       # Remove man and info pages.
+       rm -rfv $(TOOLS_DIR)/{,share}/{info,man}
+
+       # Fix ownership of the toolchain.
+       chown -R root:root $(TOOLS_DIR)/
+
+       # Update/create linker cache.
+       $(TOOLS_DIR)/sbin/ldconfig
+
+       # Set a marker when the toolchain was successfully built
+       touch $(TOOLS_DIR)/.toolchain-successful
+else
+       mv -v $(TOOLS_DIR)/bin/{ld,ld-old}
+       mv -v $(TOOLS_DIR)/$(BUILDTARGET)/bin/{ld,ld-old}
+       mv -v $(TOOLS_DIR)/bin/{ld-new,ld}
+       ln -sv $(TOOLS_DIR)/bin/ld $(TOOLS_DIR)/$(BUILDTARGET)/bin/ld
+
+       gcc -dumpspecs | sed \
+               -e 's@$(TOOLS_DIR)@@g' \
+               -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
+               -e '/\*cpp:/{n;s@$$@ -isystem /usr/include@}' > \
+               $$(dirname $$(gcc -print-libgcc-file-name))/specs
 endif
+
        @$(POSTBUILD)