################################################################# # File...: /usr/share/slackdev/slackdev.config # Purpose: Configure your environment for porting Slackware # using the Slackdev project's build scripts # Author : Stuart Winter # Version: 2.00 # Date...: 23-Oct-2015 ################################################################# # History # v1.00, 08-Mar-2004 # * Initial version # v2.00, 23-Oct-2015 # * Added initial support for Slackware ARM hard float. # ARM SlackBuild scripts can now use the default CFLAGS set # from here. ################################################################# # # ** These defaults are for ARM; you will need to change them ** # # These values may be overridden in the package build script or # (as Slackware ARM does) in the arm/build script. # # Make it easier for the ARM SlackBuilds to find only the source # archives. This permits looser methods of scripting. # This doesn't work on absolute paths, but it's a useful reminder. # GLOBIGNORE='*.asc:*.sign' # Cause coreutils to conform to the older POSIX standard, causing # less headaches. # See: http://lists.debian.org/debian-lsb/2003/10/msg00011.html #export _POSIX2_VERSION=199209 # The architecture to which you're porting Slackware. # For specific packages which are 'noarch', this is set by the individual # package '/build' scripts using the 'PKGARCH' variable. export ARCH=arm # Slackware ARM Hard Float #export ARCH=aarch64 # Slackware AArch64 (64-bit ARM) #export ARCH=i486 # Slackware x86 #export ARCH=x86_64 # Slackware 64 # # For aarch64, check this out: "Subject: Re: Broadcom BCM2709, ARMv8, and missing CPU features" - debian-arm list # # Default CFLAGS for the specified architecture: # # The toolchain architecture quadlet variables '$SLK_ARCH_HOST', '$SLK_ARCH_TARGET', 'SLK_ARCH_BUILD' # are set in 'buildkit.sh'. You should never need to change these which is why they're within the # shell library rather than this config file. case $ARCH in # Slackware ARM Hard Float - ARMv7-a arm) export SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -mtune=generic-armv7-a -mabi=aapcs-linux" export LIBDIRSUFFIX="" export SLKPORTARCH=arm # Used within build scripts to make build-time decisions using the unified source tree # This will occasionally be changed to noarch,fw,firmware within a package's 'arm/build' script export PKGARCH=arm ;; # SlackwareAArch64 - 64bit ARMv8: aarch64) export SLKCFLAGS="-O2 -fPIC" # Generally this is required. If not, filter per build script. export LIBDIRSUFFIX="64" export SLKPORTARCH=aarch64 # Used within build scripts to make build-time decisions using the unified source tree # This will occasionally be changed to noarch,fw,firmware within a package's 'arm/build' script export PKGARCH=aarch64 ;; *) export SLKCFLAGS="-O2" ;; esac # The full unmodified Slackware source tree # #export SLACKSOURCE=$HOME/slackware-current/source # This allows us to over-ride the source -- allowing us to specify # the patch source dir for when Slackware ARM is lagging behind Slackware-current: # I can build from slackware-12.1/patches/source, for example, without # having to move data around. #export SLACKSOURCE=${SLACKSOURCE:-$HOME/slackware-current/source} # # We use slackware64-current now because it has the source build scripts for # packages such as Firefox, Thunderbird. export SLACKSOURCE=${SLACKSOURCE:-$HOME/slackware64-current/source} # Version of Slackware that the machine upon which this package and # this configuration file is building. # The Slackware ARM build environment is setup such that each machine # is dedicated to a particular version of Slackware. # This setting is used to version control the assets within 'bootware'. export SLACKWAREVERSION=slackwarearm-current # For the build machines running the Stable releases, used to build patches: # export SLACKSOURCE=${SLACKSOURCE:-$HOME/slackware64-14.2/patches/source} # The root location of your port's (overlay) tree: # If you kept it in your root user's home directory: # For Slackware AArch64, we have some aarch64-specific files that are contained # within slackwareaarch64-current/source which help construct the installer # tag files and so on, but the rest of it is unified with the ARM port. # This is why this is hard coded. # Not any more since 32bit ARM is retired. The note above is for reference # should I ever have split trees again. #export PORTSRC=~/slackwarearm-current/ export PORTSRC=~/slackware${SLKPORTARCH}-current/ # Future addition: # Need to think about how it interacts with $PORTSRC which was fine # when there was only one port using the overlay. # So we need 2 variables - 1 pointing to the original ARM overlay # and the other for the 2nd overlay. # The 2nd overlay is used to store the packages and other artifacts # and the 1st (master) is where the sources and control resides. # # PORTROOTDIR is the root of the port's directory. This is used for # AArch64 to address the AArch64-specific files. However, 99% of # the AArch64 port references the master ARM tree. # export PORTROOTDIR=$HOME/slackware${SLKPORTARCH}-current/ # Location of patch packages and source for this port: export PORTPATCHPKGS=${PORTROOTDIR}/patches/packages export PORTPATCHSRC=${PORTROOTDIR}/patches/source # The root of the slackware64 tree: export SLACKUPSTREAMROOTDIR=${SLACKUPSTREAMROOTDIR:-$HOME/slackware64-current} # This directory is the master location of what is made available # under ftp://ftp.arm.slackware.com/slackwarearm/platform/ # This variable is referenced by some of the Slackware ARM build scripts # when producing build artifacts such as SD card images for particular # ARM boards. # The end user shouldn't need to adjust this nor use it. export SLACKPLATFORMDIR=$HOME/platform/$SLKPORTARCH # Temporary directory into which the build scripts will extract # the source archives and so on. # #export TMP=/tmp export TMP=$HOME/tmp # We Make this directory now because the patch utility needs it: mkdir -p $TMP > /dev/null 2>&1 # Your package stash. This is where makepkg will save the resulting # .tgz binary package. # #export PKGSTORE=/tmp/tgzstash # If you're building on a stable machine, then the assumption is that you're # building only 'patches'. Therefore this symlink would typically point to /tmp/patches # export PKGSTORE=${PKGSTORE:-$HOME/tgzstash} # The location of the "-devtools" directory. This is to automate the building of # the miniroot from "r2b". export SLACKDEVTOOLSDIR=~/armedslack/slackwarearm-devtools/ # Delete previous .tgz? This is a lazy way. You shouldn't # do this, really - you may wish to keep your old versions # in a separate store. export DELETEOLDPKGS=Yes ## Below is old cruft - residue from the first boot strapping using Scratchbox in 2003. ## Left for .. dead ;-) # Location of fakeroot library for use with buildkit.sh's start_fakeroot # function. # Currently only Slackware ARM doesn't build natively but you may also # not want to build as root. If not, you can grab the fakeroot build # script from http://www.interlude.org.uk/unix/slackware and uncomment # the following variable. # However, if you're using Scratchbox then you should leave this uncommented # as start_fakeroot and altertrack already know the correct location for # running within Scratchbox. # # export FAKEROOT_LIB=/usr/lib/libfakeroot/libfakeroot.so # # If fakeroot is installed and you aren't root then start_fakeroot will # launch fakeroot. However, if you don't want to ever use fakeroot then # uncomment the following (basically, everything other than Slackware ARM): # # export PORT_NOFAKEROOT=yes # this should always be commented out for Slackware ARM # Options for slacktrack. For building Slackware ARM under scratchbox # you need to uncomment the following. # If you are building natively then you should always leave this commented out. #if [ -d /scratchbox ]; then # export ALTERTRACKOPTS='--froot --rootdir=/targets/ARM/ --with-scratchbox' # else # export ALTERTRACKOPTS="" #fi