root/trunk/make/procps.mk @ 4920

Revision 4920, 5.8 KB (checked in by bzhou, 4 years ago)

use /opt/bin/update-alternatives fullpath in postinst

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1###########################################################
2#
3# procps
4#
5###########################################################
6
7ifeq ($(OPTWARE_TARGET), wl500g)
8PROCPS_VERSION=3.2.3
9else
10PROCPS_VERSION=3.2.7
11endif
12PROCPS=procps-$(PROCPS_VERSION)
13PROCPS_SITE=http://procps.sourceforge.net
14PROCPS_SOURCE_ARCHIVE=$(PROCPS).tar.gz
15PROCPS_UNZIP=zcat
16PROCPS_MAINTAINER=NSLU2 Linux <nslu2-linux@yahoogroups.com>
17PROCPS_DESCRIPTION=PROCPS System Utilities
18PROCPS_SECTION=devel
19PROCPS_PRIORITY=optional
20PROCPS_DEPENDS=ncurses
21PROCPS_CONFLICTS=busybox-links
22
23PROCPS_IPK_VERSION=3
24
25PROCPS_BUILD_DIR=$(BUILD_DIR)/procps
26PROCPS_SOURCE_DIR=$(SOURCE_DIR)/procps
27PROCPS_IPK=$(BUILD_DIR)/procps_$(PROCPS_VERSION)-$(PROCPS_IPK_VERSION)_$(TARGET_ARCH).ipk
28PROCPS_IPK_DIR=$(BUILD_DIR)/procps-$(PROCPS_VERSION)-ipk
29
30PROCPS_CPPFLAGS="$(STAGING_CPPFLAGS) -I$(STAGING_DIR)/opt/include/ncurses"
31PROCPS_LDFLAGS="$(STAGING_LDFLAGS)"
32
33#
34# This is the dependency on the source code.  If the source is missing,
35# then it will be fetched from the site using wget.
36#
37$(DL_DIR)/$(PROCPS_SOURCE_ARCHIVE):
38        $(WGET) -P $(DL_DIR) $(PROCPS_SITE)/$(PROCPS_SOURCE_ARCHIVE)
39
40#
41# The source code depends on it existing within the download directory.
42# This target will be called by the top level Makefile to download the
43# source code's archive (.tar.gz, .bz2, etc.)
44#
45procps-source: $(DL_DIR)/$(PROCPS_SOURCE_ARCHIVE)
46
47#
48# This target unpacks the source code into the build directory.
49#
50$(PROCPS_BUILD_DIR)/.source: $(DL_DIR)/$(PROCPS_SOURCE_ARCHIVE)
51        $(PROCPS_UNZIP) $(DL_DIR)/$(PROCPS_SOURCE_ARCHIVE) | tar -C $(BUILD_DIR) -xvf -
52        mv $(BUILD_DIR)/procps-$(PROCPS_VERSION) $(PROCPS_BUILD_DIR)
53        touch $(PROCPS_BUILD_DIR)/.source
54
55#
56# This target configures the build within the build directory.
57# This is a fairly important note (cuz I wasted about 5 hours on it).
58# Flags usch as LDFLAGS and CPPFLAGS should be passed into configure
59# and NOT $(MAKE) below.  Passing it to configure causes configure to
60# correctly BUILD the Makefile with the right paths, where passing it
61# to Make causes it to override the default search paths of the compiler.
62#
63$(PROCPS_BUILD_DIR)/.configured: $(PROCPS_BUILD_DIR)/.source
64        $(MAKE) ncurses-stage
65        touch $(PROCPS_BUILD_DIR)/.configured
66
67procps-unpack: $(PROCPS_BUILD_DIR)/.configured
68
69#
70# This builds the actual binary.
71#
72$(PROCPS_BUILD_DIR)/.built: $(PROCPS_BUILD_DIR)/.configured
73        rm -f $(PROCPS_BUILD_DIR)/.built
74        $(TARGET_CONFIGURE_OPTS) \
75        $(MAKE) -C $(PROCPS_BUILD_DIR)  \
76        CC=$(TARGET_CC)                 \
77        CPPFLAGS=$(PROCPS_CPPFLAGS)     \
78        LDFLAGS=$(PROCPS_LDFLAGS)       \
79        RANLIB=$(TARGET_RANLIB)
80        touch $(PROCPS_BUILD_DIR)/.built
81#
82# These are the dependencies for the binary. 
83#
84procps: ncurses $(PROCPS_BUILD_DIR)/.built
85
86#
87# This rule creates a control file for ipkg.  It is no longer
88# necessary to create a seperate control file under sources/procps
89#
90$(PROCPS_IPK_DIR)/CONTROL/control:
91        @install -d $(PROCPS_IPK_DIR)/CONTROL
92        @rm -f $@
93        @echo "Package: procps" >>$@
94        @echo "Architecture: $(TARGET_ARCH)" >>$@
95        @echo "Priority: $(PROCPS_PRIORITY)" >>$@
96        @echo "Section: $(PROCPS_SECTION)" >>$@
97        @echo "Version: $(PROCPS_VERSION)-$(PROCPS_IPK_VERSION)" >>$@
98        @echo "Maintainer: $(PROCPS_MAINTAINER)" >>$@
99        @echo "Source: $(PROCPS_SITE)/$(PROCPS_SOURCE)" >>$@
100        @echo "Description: $(PROCPS_DESCRIPTION)" >>$@
101        @echo "Depends: $(PROCPS_DEPENDS)" >>$@
102        @echo "Conflicts: $(PROCPS_CONFLICTS)" >>$@
103
104#
105# This builds the IPK file.
106#
107$(PROCPS_IPK): $(PROCPS_BUILD_DIR)/.built
108        rm -rf $(PROCPS_IPK_DIR) $(BUILD_DIR)/procps_*_$(TARGET_ARCH).ipk
109        mkdir -p $(PROCPS_IPK_DIR)/opt
110        mkdir -p $(PROCPS_IPK_DIR)/opt/bin
111        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/free -o $(PROCPS_IPK_DIR)/opt/bin/free
112        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/kill -o $(PROCPS_IPK_DIR)/opt/bin/procps-kill
113        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/pgrep -o $(PROCPS_IPK_DIR)/opt/bin/pgrep
114        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/pmap -o $(PROCPS_IPK_DIR)/opt/bin/pmap
115        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/ps/ps -o $(PROCPS_IPK_DIR)/opt/bin/ps
116        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/skill -o $(PROCPS_IPK_DIR)/opt/bin/skill
117        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/slabtop -o $(PROCPS_IPK_DIR)/opt/bin/slabtop
118        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/snice -o $(PROCPS_IPK_DIR)/opt/bin/snice
119        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/sysctl -o $(PROCPS_IPK_DIR)/opt/bin/sysctl
120        cp $(PROCPS_BUILD_DIR)/t $(PROCPS_IPK_DIR)/opt/bin
121        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/tload -o $(PROCPS_IPK_DIR)/opt/bin/tload
122        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/top -o $(PROCPS_IPK_DIR)/opt/bin/top
123        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/uptime -o $(PROCPS_IPK_DIR)/opt/bin/procps-uptime
124        cp $(PROCPS_BUILD_DIR)/v $(PROCPS_IPK_DIR)/opt/bin
125        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/vmstat -o $(PROCPS_IPK_DIR)/opt/bin/vmstat
126        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/w -o $(PROCPS_IPK_DIR)/opt/bin/w
127        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/watch -o $(PROCPS_IPK_DIR)/opt/bin/watch
128        mkdir -p $(PROCPS_IPK_DIR)/opt/lib
129        $(STRIP_COMMAND) $(PROCPS_BUILD_DIR)/proc/libproc-$(PROCPS_VERSION).so -o $(PROCPS_IPK_DIR)/opt/lib/libproc-$(PROCPS_VERSION).so
130        $(MAKE) $(PROCPS_IPK_DIR)/CONTROL/control
131        install -m 644 $(PROCPS_SOURCE_DIR)/postinst $(PROCPS_IPK_DIR)/CONTROL/postinst
132        install -m 644 $(PROCPS_SOURCE_DIR)/prerm $(PROCPS_IPK_DIR)/CONTROL/prerm
133        cd $(BUILD_DIR); $(IPKG_BUILD) $(PROCPS_IPK_DIR)
134
135#
136# This is called from the top level makefile to create the IPK file.
137#
138procps-ipk: $(PROCPS_IPK)
139
140#
141# This is called from the top level makefile to clean all of the built files.
142#
143procps-clean:
144        -$(MAKE) -C $(PROCPS_BUILD_DIR) uninstall
145        -$(MAKE) -C $(PROCPS_BUILD_DIR) clean
146
147#
148# This is called from the top level makefile to clean ALL files, including
149# downloaded source.
150#
151procps-distclean:
152        -rm $(PROCPS_BUILD_DIR)/.configured
153        -$(MAKE) -C $(PROCPS_BUILD_DIR) distclean
154
155#
156# This is called from the top level makefile to clean all dynamically created
157# directories.
158#
159procps-dirclean:
160        rm -rf $(PROCPS_BUILD_DIR) $(PROCPS_IPK_DIR) $(PROCPS_IPK)
Note: See TracBrowser for help on using the browser.