FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > ArchLinux > ArchLinux Pacman Development

 
 
LinkBack Thread Tools
 
Old 05-28-2012, 06:01 AM
Allan McRae
 
Default makepkg: run locally with libtool style wrapper

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.

scripts/.gitignore | 1 +
scripts/Makefile.am | 27 ++++++++++++++++++++++++++-
scripts/makepkg-wrapper.sh.in | 23 +++++++++++++++++++++++
3 files changed, 50 insertions(+), 1 deletion(-)
create mode 100644 scripts/makepkg-wrapper.sh.in

diff --git a/scripts/.gitignore b/scripts/.gitignore
index 9e403bf..0310b9b 100644
--- a/scripts/.gitignore
+++ b/scripts/.gitignore
@@ -1,4 +1,5 @@
makepkg
+makepkg-wrapper
pacman-db-upgrade
pacman-key
pacman-optimize
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 9a08524..71d6cc4 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -4,7 +4,8 @@ AUTOMAKE_OPTIONS = std-options
SUBDIRS = po

bin_SCRIPTS =
- $(OURSCRIPTS)
+ $(OURSCRIPTS)
+ makepkg-wrapper

OURSCRIPTS =
makepkg
@@ -16,6 +17,7 @@ OURSCRIPTS =

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:
$(srcdir)/makepkg.sh.in
+ $(srcdir)/makepkg-wrapper.sh.in
$(srcdir)/library/parseopts.sh

pacman-db-upgrade:
@@ -101,8 +107,27 @@ repo-elephant: $(srcdir)/repo-add.sh.in
$(RM) repo-elephant
$(LN_S) repo-add repo-elephant

+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
 

Thread Tools




All times are GMT. The time now is 12:47 PM.

VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2007 - 2008, www.linux-archive.org