aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoelacanthus <[email protected]>2021-10-24 21:08:00 +0800
committerGitHub <[email protected]>2021-10-24 21:08:00 +0800
commit7fb839e3cc09db2d56d5744b1bd1fb2a09d83fd0 (patch)
tree4d54cce135947a32010f5f8745c818835188b716
parentb8e8fea7a54bc7713cd230b5179d50fb505918da (diff)
feat: support multiarch (#3)
-rw-r--r--makepkg.d/makepkg.aarch64.conf21
-rw-r--r--makepkg.d/makepkg.arm.conf21
-rw-r--r--makepkg.d/makepkg.armv6h.conf21
-rw-r--r--makepkg.d/makepkg.armv7h.conf21
-rw-r--r--makepkg.d/makepkg.base.conf (renamed from makepkg.conf)22
-rw-r--r--makepkg.d/makepkg.riscv64.conf21
-rw-r--r--makepkg.d/makepkg.x86_64.conf21
-rwxr-xr-xpkgbuild.sh9
8 files changed, 134 insertions, 23 deletions
diff --git a/makepkg.d/makepkg.aarch64.conf b/makepkg.d/makepkg.aarch64.conf
new file mode 100644
index 0000000..e032493
--- /dev/null
+++ b/makepkg.d/makepkg.aarch64.conf
@@ -0,0 +1,21 @@
+#########################################################################
+# ARCHITECTURE, COMPILE FLAGS
+#########################################################################
+#
+CARCH="aarch64"
+CHOST="aarch64-unknown-linux-gnu"
+
+#-- Compiler and Linker Flags
+#CPPFLAGS=""
+CFLAGS="-march=armv8-a -O2 -pipe -fstack-protector-strong -fno-plt -fexceptions \
+ -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
+ -fstack-clash-protection"
+CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
+LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
+#RUSTFLAGS="-C opt-level=2"
+#-- Make Flags: change this for DistCC/SMP systems
+MAKEFLAGS="-j$(nproc)"
+#-- Debugging flags
+DEBUG_CFLAGS="-g -fvar-tracking-assignments"
+DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
+#DEBUG_RUSTFLAGS="-C debuginfo=2"
diff --git a/makepkg.d/makepkg.arm.conf b/makepkg.d/makepkg.arm.conf
new file mode 100644
index 0000000..fc93003
--- /dev/null
+++ b/makepkg.d/makepkg.arm.conf
@@ -0,0 +1,21 @@
+#########################################################################
+# ARCHITECTURE, COMPILE FLAGS
+#########################################################################
+#
+CARCH="arm"
+CHOST="armv5tel-unknown-linux-gnueabi"
+
+#-- Compiler and Linker Flags
+#CPPFLAGS=""
+CFLAGS="-march=armv5te -O2 -pipe -fstack-protector-strong -fno-plt -fexceptions \
+ -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
+ -fstack-clash-protection"
+CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
+LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
+#RUSTFLAGS="-C opt-level=2"
+#-- Make Flags: change this for DistCC/SMP systems
+MAKEFLAGS="-j$(nproc)"
+#-- Debugging flags
+DEBUG_CFLAGS="-g -fvar-tracking-assignments"
+DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
+#DEBUG_RUSTFLAGS="-C debuginfo=2"
diff --git a/makepkg.d/makepkg.armv6h.conf b/makepkg.d/makepkg.armv6h.conf
new file mode 100644
index 0000000..74e60a2
--- /dev/null
+++ b/makepkg.d/makepkg.armv6h.conf
@@ -0,0 +1,21 @@
+#########################################################################
+# ARCHITECTURE, COMPILE FLAGS
+#########################################################################
+#
+CARCH="armv6h"
+CHOST="armv6l-unknown-linux-gnueabihf"
+
+#-- Compiler and Linker Flags
+#CPPFLAGS=""
+CFLAGS="-march=armv6 -mfloat-abi=hard -mfpu=vfp -O2 -pipe -fstack-protector-strong -fno-plt -fexceptions \
+ -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
+ -fstack-clash-protection"
+CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
+LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
+#RUSTFLAGS="-C opt-level=2"
+#-- Make Flags: change this for DistCC/SMP systems
+MAKEFLAGS="-j$(nproc)"
+#-- Debugging flags
+DEBUG_CFLAGS="-g -fvar-tracking-assignments"
+DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
+#DEBUG_RUSTFLAGS="-C debuginfo=2"
diff --git a/makepkg.d/makepkg.armv7h.conf b/makepkg.d/makepkg.armv7h.conf
new file mode 100644
index 0000000..a414e5e
--- /dev/null
+++ b/makepkg.d/makepkg.armv7h.conf
@@ -0,0 +1,21 @@
+#########################################################################
+# ARCHITECTURE, COMPILE FLAGS
+#########################################################################
+#
+CARCH="armv7h"
+CHOST="armv7l-unknown-linux-gnueabihf"
+
+#-- Compiler and Linker Flags
+#CPPFLAGS=""
+CFLAGS="-march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector-strong -fno-plt -fexceptions \
+ -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
+ -fstack-clash-protection"
+CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
+LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
+#RUSTFLAGS="-C opt-level=2"
+#-- Make Flags: change this for DistCC/SMP systems
+MAKEFLAGS="-j$(nproc)"
+#-- Debugging flags
+DEBUG_CFLAGS="-g -fvar-tracking-assignments"
+DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
+#DEBUG_RUSTFLAGS="-C debuginfo=2"
diff --git a/makepkg.conf b/makepkg.d/makepkg.base.conf
index 221c0f2..2e29d7a 100644
--- a/makepkg.conf
+++ b/makepkg.d/makepkg.base.conf
@@ -30,28 +30,6 @@ VCSCLIENTS=('bzr::bzr'
'svn::subversion')
#########################################################################
-# ARCHITECTURE, COMPILE FLAGS
-#########################################################################
-#
-#CARCH="x86_64"
-#CHOST="x86_64-pc-linux-gnu"
-
-#-- Compiler and Linker Flags
-#CPPFLAGS=""
-CFLAGS="-O2 -pipe -fno-plt -fexceptions \
- -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
- -fstack-clash-protection -fcf-protection"
-CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
-LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
-#RUSTFLAGS="-C opt-level=2"
-#-- Make Flags: change this for DistCC/SMP systems
-MAKEFLAGS="-j$(nproc)"
-#-- Debugging flags
-DEBUG_CFLAGS="-g -fvar-tracking-assignments"
-DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
-#DEBUG_RUSTFLAGS="-C debuginfo=2"
-
-#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
diff --git a/makepkg.d/makepkg.riscv64.conf b/makepkg.d/makepkg.riscv64.conf
new file mode 100644
index 0000000..d412d46
--- /dev/null
+++ b/makepkg.d/makepkg.riscv64.conf
@@ -0,0 +1,21 @@
+#########################################################################
+# ARCHITECTURE, COMPILE FLAGS
+#########################################################################
+#
+CARCH="riscv64"
+CHOST="riscv64-unknown-linux-gnu"
+
+#-- Compiler and Linker Flags
+#CPPFLAGS=""
+CFLAGS="-march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions \
+ -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
+ -fstack-clash-protection"
+CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
+LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
+#RUSTFLAGS="-C opt-level=2"
+#-- Make Flags: change this for DistCC/SMP systems
+MAKEFLAGS="-j$(nproc)"
+#-- Debugging flags
+DEBUG_CFLAGS="-g -fvar-tracking-assignments"
+DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
+#DEBUG_RUSTFLAGS="-C debuginfo=2"
diff --git a/makepkg.d/makepkg.x86_64.conf b/makepkg.d/makepkg.x86_64.conf
new file mode 100644
index 0000000..079d986
--- /dev/null
+++ b/makepkg.d/makepkg.x86_64.conf
@@ -0,0 +1,21 @@
+#########################################################################
+# ARCHITECTURE, COMPILE FLAGS
+#########################################################################
+#
+CARCH="x86_64"
+CHOST="x86_64-pc-linux-gnu"
+
+#-- Compiler and Linker Flags
+#CPPFLAGS=""
+CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
+ -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
+ -fstack-clash-protection -fcf-protection"
+CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
+LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
+#RUSTFLAGS="-C opt-level=2"
+#-- Make Flags: change this for DistCC/SMP systems
+MAKEFLAGS="-j$(nproc)"
+#-- Debugging flags
+DEBUG_CFLAGS="-g -fvar-tracking-assignments"
+DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
+#DEBUG_RUSTFLAGS="-C debuginfo=2"
diff --git a/pkgbuild.sh b/pkgbuild.sh
index 29d9f01..5d99157 100755
--- a/pkgbuild.sh
+++ b/pkgbuild.sh
@@ -5,10 +5,16 @@ ARCH=$(uname -m)
PKGBUILD_DIRECTORY_BASE="repo"
PKGDEST="${PWD}/packages/$ARCH"
SRCDEST="${PWD}/build"
+CONFDEST="${PWD}/makepkg.d/makepkg.$ARCH.conf"
REPO_DEST="${PWD}/packages/$ARCH/$REPO_BASE_NAME.db.tar.xz"
REPO_PENDING="${PWD}/packages/$ARCH/PENDING"
REPO_DIFF="${PWD}/packages/$ARCH/DIFF"
+trap 'rm -f "$TMPCONF"' EXIT
+TMPCONF=$(mktemp -t makepkg.$ARCH.conf.XXXXXXXXXX) || exit 1
+cat "${PWD}/makepkg.d/makepkg.base.conf" > "$TMPCONF"
+cat "$CONFDEST" >> "$TMPCONF"
+
touch "$REPO_DIFF"
touch "$REPO_PENDING"
@@ -30,7 +36,7 @@ pushd $PKGBUILD_DIRECTORY_BASE || ( echo "Error, can't switch to pkgbuild direct
while read PACKAGE_NAME ; do
#PACKAGE_NAME=$(printf $folder | sed 's/.$//')
pushd "$PACKAGE_NAME" || continue
- SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF=$CONFDEST makepkg --clean
+ SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF="$TMPCONF" makepkg --clean
if [ $? == 0 ]; then
echo "$PACKAGE_NAME" >> "$REPO_PENDING"
fi
@@ -50,6 +56,7 @@ echo $(date +%s) > "$PKGDEST/LASTBUILD"
unset PACKAGE_NAME
unset PKGDEST
unset SRCDEST
+unset CONFDEST
unset REPO_DEST
rm -rf "$REPO_PENDING"
rm -rf "$REPO_DIFF"