Build makepkg to scripts/.lib/makepkg and add a wrapper script to
call it. This is not useful at the moment, but is the first step
to allowing makepkg to be split into smaller pieces.
Signed-off-by: Allan McRae <allan@archlinux.org>
---
This seems somewhat horrid, but I could not find a better way to do this.
Once this splitting is started, it will be easy(er) to overhaul the VCS
PKGBUILD system, and perhaps debugging symbol packages too...
Tested that building and running "makepkg" in the usual way works,
"make install" and "make distcheck" work.
EXTRA_DIST =
makepkg.sh.in
+ makepkg-wrapper.sh.in
pacman-db-upgrade.sh.in
pacman-key.sh.in
pacman-optimize.sh.in
@@ -32,6 +34,9 @@ LIBRARY =
# Files that should be removed, but which Automake does not know.
MOSTLYCLEANFILES = $(bin_SCRIPTS)
+clean-local:
+ $(AM_V_at)rm -rf .lib
+
if USE_GIT_VERSION
GIT_VERSION := $(shell sh -c 'git describe --abbrev=4 --dirty | sed s/^v//')
REAL_PACKAGE_VERSION = $(GIT_VERSION)
@@ -69,6 +74,7 @@ $(OURSCRIPTS): Makefile
+makepkg-wrapper:
+ Makefile
+ $(srcdir)/makepkg-wrapper.sh.in
+ $(srcdir)/makepkg.sh.in
+ $(srcdir)/library/parseopts.sh
+ | makepkg
+ $(AM_V_at)$(MKDIR_P) .lib
+ $(AM_V_at)mv -f makepkg .lib
+ $(AM_V_at)$(RM) $@
+ $(AM_V_GEN)sed
+ -e "s|@PWD[@]|$$(pwd)|"
+ -e '1s|!/bin/bash|!$(BASH_SHELL)|g'
+ $(srcdir)/$@.sh.in > $@
+ $(AM_V_at)chmod +x,a-w $@
+ $(AM_V_at)$(LN_S) makepkg-wrapper makepkg
+
install-data-hook:
cd $(DESTDIR)$(bindir) &&
+ $(RM) makepkg makepkg-wrapper
+ $(INSTALL) .lib/makepkg $(DESTDIR)$(bindir)/makepkg
+ cd $(DESTDIR)$(bindir) &&
$(RM) repo-elephant &&
( $(LN_S) repo-add repo-elephant ||
ln repo-add repo-elephant ||
diff --git a/scripts/makepkg-wrapper.sh.in b/scripts/makepkg-wrapper.sh.in
new file mode 100644
index 0000000..70cda93
--- /dev/null
+++ b/scripts/makepkg-wrapper.sh.in
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+# makepkg - a wrapper for running the real makepkg in the source tree
+#
+# Copyright (c) 2012 Pacman Development Team <pacman-dev@archlinux.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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+DIR=@PWD@
+
+LIBRARY=$DIR/libmakepkg $DIR/.lib/makepkg "$@"
--
1.7.10.2