[uClibc].mk files

Dan Cardamore dan.cardamore at officeserver.ca
Sat May 24 16:51:11 UTC 2003


Attached are several .mk files I was working on.  I'm done with uclibc
for a while and rather than just have them sit on my drive I'll share
them with the list even though they are not tested very well, and in
some .mk cases they need some kludges done around them.

dcron.mk  --  cron daemon.
gmp.mk    --  GNU Math library for freeswan (not very well done)
ipsec.mk  --  Half-way done.  Some makefiles still point back to GCC
              rather than uclibc's toolchain.
iptraf.mk --  Works.  I think some of the paths may not work well since
              I get lock file problems.  This was only tested in a chroot.
nano.mk   --  Works if you modify the configure file to not 'exit 1;' on
              a cross_compile test.  If you don't want to modify the
              configure file then just change the URL's at the top to 
              point to version 1.09 of nano instead of 1.28 and it will 
              work without any modifications.
ntpclient.mk  -- network time protocol.  Can't remember how well it
                 works.
rppppoe.mk  -- PPPOE client.  This .mk file doesn't work well at all.
               Requires the latest 2.4.2 pppd daemon.
shorewall.mk  -- Works well with latest shorewall firewall script.
flash.mk  -- Flash menuing system.  Works well.
zebra.mk  -- Routing daemon.  I think this one works well but it wasn't
             tested heavily.  IPv6 daemons are not installed.

Dan
--
Dan Cardamore                              dan.cardamore at officeserver.ca
Cell: (613)355-8048                        http://www.officeserver.ca
-------------- next part --------------
#############################################################
#
# dcron
#
#############################################################
DCRON_SOURCE:=dcron-2.3.3.tar.gz
DCRON_SITE:=http://freshmeat.net/redir/dcron/1903/url_tgz/
DCRON_DIR:=$(BUILD_DIR)/dcron-2.3.3
DCRON_CAT:=zcat
DCRON_BINARY:=dcron
DCRON_TARGET_BINARY:=/sbin/dcron

$(DL_DIR)/$(DCRON_SOURCE):
	 $(WGET) -P $(DL_DIR) $(DCRON_SITE)/$(DCRON_SOURCE)

dcron-source: $(DL_DIR)/$(DCRON_SOURCE)

$(DCRON_DIR)/.unpacked: $(DL_DIR)/$(DCRON_SOURCE)
	$(DCRON_CAT) $(DL_DIR)/$(DCRON_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	touch $(DCRON_DIR)/.unpacked
	perl -i -p -e "s,gcc,$(STAGING_DIR)/bin/i386-uclibc-gcc,;" $(DCRON_DIR)/Makefile

$(DCRON_DIR)/.configured: $(DCRON_DIR)/.unpacked
	touch  $(DCRON_DIR)/.configured

$(DCRON_DIR)/$(DCRON_BINARY): $(DCRON_DIR)/.configured
	$(MAKE) -C $(DCRON_DIR)

# This stuff is needed to work around GNU make deficiencies
dcron-target_binary: $(DCRON_DIR)/$(DCRON_BINARY)
	cp -au $(DCRON_DIR)/crond $(TARGET_DIR)/usr/bin/
	cp -au $(DCRON_DIR)/crontab $(TARGET_DIR)/usr/bin/
	mkdir -p $(TARGET_DIR)/var/spool/cron/crontabs


dcron: uclibc dcron-target_binary

dcron-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(DCRON_DIR) uninstall
	-$(MAKE) -C $(DCRON_DIR) clean

dcron-dirclean:
	rm -rf $(DCRON_DIR)
-------------- next part --------------
#############################################################
#
# flash
#
#############################################################
FLASH_SOURCE:=flash-0.9.5.tar.gz
FLASH_SITE:=http://www.netsoc.ucd.ie/flash/
FLASH_DIR:=$(BUILD_DIR)/flash-0.9.5
FLASH_CAT:=zcat
FLASH_BINARY:=flash
FLASH_TARGET_BINARY:=/usr/bin/flash

$(DL_DIR)/$(FLASH_SOURCE):
	 $(WGET) -P $(DL_DIR) $(FLASH_SITE)/$(FLASH_SOURCE)

flash-source: $(DL_DIR)/$(FLASH_SOURCE)

$(FLASH_DIR)/.unpacked: $(DL_DIR)/$(FLASH_SOURCE)
	$(FLASH_CAT) $(DL_DIR)/$(FLASH_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	touch $(FLASH_DIR)/.unpacked
	perl -i -p -e "s/cannot check getpgrp if cross compiling\" 1>&2; exit 1;/cannot check getpgrp if cross compiling\" 1>&2;/g;" $(FLASH_DIR)/configure

$(FLASH_DIR)/.configured: $(FLASH_DIR)/.unpacked
	(cd $(FLASH_DIR); rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/usr \
		--exec-prefix=/usr \
		--bindir=/usr/bin \
		--sbindir=/usr/sbin \
		--libexecdir=/usr/lib \
		--sysconfdir=/etc \
		--datadir=/usr/share \
		--localstatedir=/var \
		--mandir=/usr/man \
		--infodir=/usr/info \
		--disable-nls \
		--disable-perl-regexp \
		--without-included-regex \
	);
	touch  $(FLASH_DIR)/.configured

$(FLASH_DIR)/$(FLASH_BINARY): $(FLASH_DIR)/.configured
	$(MAKE) -C $(FLASH_DIR)

# This stuff is needed to work around GNU make deficiencies
flash-target_binary: $(FLASH_DIR)/$(FLASH_BINARY)
	cp -au $(FLASH_DIR)/flash $(TARGET_DIR)/usr/bin/
	cp -au $(FLASH_DIR)/sample-config/* $(TARGET_DIR)/usr/lib/flash

flash: uclibc flash-target_binary

flash-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(FLASH_DIR) uninstall
	-$(MAKE) -C $(FLASH_DIR) clean

flash-dirclean:
	rm -rf $(FLASH_DIR)
-------------- next part --------------
#############################################################
#
# gmp
#
#############################################################
GMP_SOURCE:=gmp-4.1.2.tar.gz
GMP_SITE:=ftp://mirrors.kernel.org/gnu/gmp/
GMP_DIR:=$(BUILD_DIR)/gmp-4.1.2

GMP_CAT:=zcat
GMP_BINARY:=libgmp.la

$(DL_DIR)/$(GMP_SOURCE):
	 $(WGET) -P $(DL_DIR) $(GMP_SITE)/$(GMP_SOURCE)

gmp-source: $(DL_DIR)/$(GMP_SOURCE)

$(GMP_DIR)/.unpacked: $(DL_DIR)/$(GMP_SOURCE)
	$(GMP_CAT) $(DL_DIR)/$(GMP_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	touch $(GMP_DIR)/.unpacked

$(GMP_DIR)/.configured: $(GMP_DIR)/.unpacked
	(cd $(GMP_DIR); rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/usr \
		--exec-prefix=/usr \
		--bindir=/usr/bin \
		--sbindir=/usr/sbin \
		--libexecdir=/usr/lib \
		--sysconfdir=/etc \
		--datadir=/usr/share \
		--localstatedir=/var \
		--mandir=/usr/man \
		--infodir=/usr/info \
		--disable-nls \
		--enable-shared \
	);
	touch  $(GMP_DIR)/.configured

$(GMP_DIR)/.libs/$(GMP_BINARY): $(GMP_DIR)/.configured
	$(MAKE) CC=$(TARGET_CC) -C $(GMP_DIR)

$(STAGING_DIR)/lib/$(GMP_BINARY): $(GMP_DIR)/.libs/$(GMP_BINARY)
	$(MAKE) CC=$(TARGET_CC) prefix=$(STAGING_DIR) -C $(GMP_DIR) install

$(TARGET_DIR)/lib/$(GMP_BINARY): $(STAGING_DIR)/lib/$(GMP_BINARY)
	cp -a $(GMP_DIR)/gmp.h $(TARGET_DIR)/usr/include/
	cp -a $(GMP_DIR)/longlong.h $(TARGET_DIR)/usr/include/
	cp -a $(GMP_DIR)/mpfrxx.h $(TARGET_DIR)/usr/include/
	cp -a $(GMP_DIR)/mp.h $(TARGET_DIR)/usr/include/
	cp -a $(GMP_DIR)/gmpxx.h $(TARGET_DIR)/usr/include/
	cp -a $(GMP_DIR)/gmp-impl.h $(TARGET_DIR)/usr/include/
	cp -a $(GMP_DIR)/libgmp.la $(TARGET_DIR)/lib/

gmp: uclibc $(TARGET_DIR)/lib/$(GMP_BINARY)

gmp-clean:
	rm -f $(TARGET_DIR)/lib/$(GMP_BINARY)
	-$(MAKE) -C $(GMP_DIR) clean

gmp-dirclean:
	rm -rf $(GMP_DIR)

-------------- next part --------------
#############################################################
#
# ipsec
#
# To get this to work you'll need to make sure that the
# makefiles pick up the uclibc 'cc' binary.  These makefiles
# are hardcoded to run cc rather than $(CC) and I didn't feel
# like making a patch for them.
#
# So, go into your $(STAGING_DIR)/bin and create a link from your
# arch's uclibc gcc to $(STAGING_DIR)/bin/cc.  Then set your path
# to look in that directory first.
#############################################################
IPSEC_SOURCE:=super-freeswan-1.99.7.tar.gz
IPSEC_SITE:=http://download.freeswan.ca/super-freeswan/
IPSEC_DIR:=$(BUILD_DIR)/super-freeswan-1.99.7
IPSEC_CAT:=zcat
IPSEC_BINARY:=ipsec
IPSEC_TARGET_BINARY:=/usr/local/lib/ipsec
# these get read by superfreeswan's Makefile.inc
KERNELSRC=$(BUILD_DIR)/linux/
DESTDIR=$(TARGET_DIR)

$(DL_DIR)/$(IPSEC_SOURCE):
	 $(WGET) -P $(DL_DIR) $(IPSEC_SITE)/$(IPSEC_SOURCE)

ipsec-source: $(DL_DIR)/$(IPSEC_SOURCE)

$(IPSEC_DIR)/.unpacked: $(DL_DIR)/$(IPSEC_SOURCE)
	$(IPSEC_CAT) $(DL_DIR)/$(IPSEC_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	touch $(IPSEC_DIR)/.unpacked

$(IPSEC_DIR)/.configured: $(IPSEC_DIR)/.unpacked
	touch  $(IPSEC_DIR)/.configured

$(IPSEC_DIR)/$(IPSEC_BINARY): $(IPSEC_DIR)/.configured
	touch $(IPSEC_DIR)/.configured

# This stuff is needed to work around GNU make deficiencies
ipsec-target_binary: $(IPSEC_DIR)/$(IPSEC_BINARY)
	DESTDIR=$(DESTDIR) \
	KERNELSRC=$(KERNELSRC) \
	$(MAKE) -C $(IPSEC_DIR) oldgo

ipsec: uclibc ipsec-target_binary

ipsec-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(IPSEC_DIR) uninstall
	-$(MAKE) -C $(IPSEC_DIR) clean

ipsec-dirclean:
	rm -rf $(IPSEC_DIR)
-------------- next part --------------
#############################################################
#
# iptraf
#
#############################################################
IPTRAF_SOURCE:=iptraf-2.7.0.tar.gz
IPTRAF_SITE:=ftp://ftp.cebu.mozcom.com/pub/linux/net/
IPTRAF_DIR:=$(BUILD_DIR)/iptraf-2.7.0
IPTRAF_CAT:=zcat
IPTRAF_BINARY:=iptraf
IPTRAF_TARGET_BINARY:=/usr/bin/iptraf

$(DL_DIR)/$(IPTRAF_SOURCE):
	 $(WGET) -P $(DL_DIR) $(IPTRAF_SITE)/$(IPTRAF_SOURCE)

iptraf-source: $(DL_DIR)/$(IPTRAF_SOURCE)

$(IPTRAF_DIR)/.unpacked: $(DL_DIR)/$(IPTRAF_SOURCE)
	$(IPTRAF_CAT) $(DL_DIR)/$(IPTRAF_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	touch $(IPTRAF_DIR)/.unpacked
	perl -i -p -e "s/^CC.*=.*gcc//;" $(IPTRAF_DIR)/src/Makefile
	perl -i -p -e "s/^CC.*=.*gcc//;" $(IPTRAF_DIR)/support/Makefile
	perl -i -p -e 's,gcc,$(STAGING_DIR)/bin/i386-uclibc-gcc,;' $(IPTRAF_DIR)/support/Makefile

$(IPTRAF_DIR)/.configured: $(IPTRAF_DIR)/.unpacked
	touch  $(IPTRAF_DIR)/.configured

$(IPTRAF_DIR)/$(IPTRAF_BINARY): $(IPTRAF_DIR)/.configured
	WORKDIR=/var/local/iptraf \
	LOGDIR=/var/log/iptraf \
	EXECDIR=/usr/bin \
	CC=$(STAGING_DIR)/bin/i386-uclibc-gcc \
	$(MAKE) -C $(IPTRAF_DIR)/src all

# This stuff is needed to work around GNU make deficiencies
iptraf-target_binary: $(IPTRAF_DIR)/$(IPTRAF_BINARY)
	mkdir -p $(TARGET_DIR)/var/log/iptraf
	mkdir -p $(TARGET_DIR)/var/run/iptraf
	mkdir -p $(TARGET_DIR)/var/local/iptraf
	cp -au $(IPTRAF_DIR)/src/iptraf $(TARGET_DIR)/usr/bin/
	cp -au $(IPTRAF_DIR)/src/rvnamed $(TARGET_DIR)/usr/bin/

iptraf: uclibc iptraf-target_binary

iptraf-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(IPTRAF_DIR) uninstall
	-$(MAKE) -C $(IPTRAF_DIR) clean

iptraf-dirclean:
	rm -rf $(IPTRAF_DIR)
-------------- next part --------------
#############################################################
#
# nano
#
#############################################################
NANO_SOURCE:=nano-1.2.1.tar.gz
NANO_SITE:=http://www.nano-editor.org/dist/v1.2/
NANO_DIR:=$(BUILD_DIR)/nano-1.2.1
NANO_CAT:=zcat
NANO_BINARY:=nano
NANO_TARGET_BINARY:=/usr/bin/nano

$(DL_DIR)/$(NANO_SOURCE):
	 $(WGET) -P $(DL_DIR) $(NANO_SITE)/$(NANO_SOURCE)

nano-source: $(DL_DIR)/$(NANO_SOURCE)

$(NANO_DIR)/.unpacked: $(DL_DIR)/$(NANO_SOURCE)
	$(NANO_CAT) $(DL_DIR)/$(NANO_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	touch $(NANO_DIR)/.unpacked

$(NANO_DIR)/.configured: $(NANO_DIR)/.unpacked
	(cd $(NANO_DIR); rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/usr \
		--includedir=$(STAGING_DIR)/include \
		--exec-prefix=/usr \
		--bindir=/usr/bin \
		--sbindir=/usr/sbin \
		--libexecdir=/usr/lib \
		--sysconfdir=/etc \
		--enable-nanorc \
		--datadir=/usr/share \
		--localstatedir=/var \
		--mandir=/usr/man \
		--infodir=/usr/info \
		--disable-nls \
		--disable-perl-regexp \
		--without-included-regex \
	);
	touch  $(NANO_DIR)/.configured

$(NANO_DIR)/$(NANO_BINARY): $(NANO_DIR)/.configured
	$(MAKE) -C $(NANO_DIR)

# This stuff is needed to work around GNU make deficiencies
nano-target_binary: $(NANO_DIR)/$(NANO_BINARY)
	cp -au $(NANO_DIR)/nano $(TARGET_DIR)/usr/bin/
	cp -au $(NANO_DIR)/nanorc.sample $(TARGET_DIR)/etc/nanorc

nano: uclibc nano-target_binary

nano-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(NANO_DIR) uninstall
	-$(MAKE) -C $(NANO_DIR) clean

nano-dirclean:
	rm -rf $(NANO_DIR)
-------------- next part --------------
#############################################################
#
# ntpclient
#
#############################################################
NTPCLIENT_SOURCE:=ntpclient_2000_345.tar.gz
NTPCLIENT_SITE:=http://doolittle.faludi.com/ntpclient/
NTPCLIENT_DIR:=$(BUILD_DIR)/ntpclient
NTPCLIENT_CAT:=zcat
NTPCLIENT_BINARY:=ntpclient
NTPCLIENT_TARGET_BINARY:=/sbin/ntpclient

$(DL_DIR)/$(NTPCLIENT_SOURCE):
	 $(WGET) -P $(DL_DIR) $(NTPCLIENT_SITE)/$(NTPCLIENT_SOURCE)

ntpclient-source: $(DL_DIR)/$(NTPCLIENT_SOURCE)

$(NTPCLIENT_DIR)/.unpacked: $(DL_DIR)/$(NTPCLIENT_SOURCE)
	$(NTPCLIENT_CAT) $(DL_DIR)/$(NTPCLIENT_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	touch $(NTPCLIENT_DIR)/.unpacked

$(NTPCLIENT_DIR)/.configured: $(NTPCLIENT_DIR)/.unpacked
	touch  $(NTPCLIENT_DIR)/.configured

$(NTPCLIENT_DIR)/$(NTPCLIENT_BINARY): $(NTPCLIENT_DIR)/.configured
	CC=$(STAGING_DIR)/bin/i386-uclibc-gcc $(MAKE) -C $(NTPCLIENT_DIR)

# This stuff is needed to work around GNU make deficiencies
ntpclient-target_binary: $(NTPCLIENT_DIR)/$(NTPCLIENT_BINARY)
	cp -au $(NTPCLIENT_DIR)/ntpclient $(TARGET_DIR)/sbin/
	cp -au $(NTPCLIENT_DIR)/envelope $(TARGET_DIR)/sbin/

ntpclient: uclibc ntpclient-target_binary

ntpclient-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(NTPCLIENT_DIR) uninstall
	-$(MAKE) -C $(NTPCLIENT_DIR) clean

ntpclient-dirclean:
	rm -rf $(NTPCLIENT_DIR)
-------------- next part --------------
#############################################################
#
# rppppoe
#
#############################################################
RPPPPOE_SOURCE:=rp-pppoe-3.5.tar.gz
RPPPPOE_SITE:=http://www.roaringpenguin.com/pppoe/
RPPPPOE_DIR:=$(BUILD_DIR)/rp-pppoe-3.5
RPPPPOE_CAT:=zcat
RPPPPOE_BINARY:=rppppoe
RPPPPOE_TARGET_BINARY:=/usr/bin/rppppoe

$(DL_DIR)/$(RPPPPOE_SOURCE):
	 $(WGET) -P $(DL_DIR) $(RPPPPOE_SITE)/$(RPPPPOE_SOURCE)

rppppoe-source: $(DL_DIR)/$(RPPPPOE_SOURCE)

$(RPPPPOE_DIR)/.unpacked: $(DL_DIR)/$(RPPPPOE_SOURCE)
	$(RPPPPOE_CAT) $(DL_DIR)/$(RPPPPOE_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	touch $(RPPPPOE_DIR)/.unpacked

$(RPPPPOE_DIR)/.configured: $(RPPPPOE_DIR)/.unpacked
	(cd $(RPPPPOE_DIR)/src; rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/usr \
		--exec-prefix=/usr \
		--bindir=/usr/bin \
		--sbindir=/usr/sbin \
		--libexecdir=/usr/lib \
		--sysconfdir=/etc \
		--datadir=/usr/share \
		--localstatedir=/var \
		--mandir=/usr/man \
		--infodir=/usr/info \
		--disable-nls \
		--disable-perl-regexp \
		--without-included-regex \
	);
	cd $(RPPPPOE_DIR)
	touch  $(RPPPPOE_DIR)/.configured

$(RPPPPOE_DIR)/$(RPPPPOE_BINARY): $(RPPPPOE_DIR)/.configured
	$(MAKE) -C $(RPPPPOE_DIR)

# This stuff is needed to work around GNU make deficiencies
rppppoe-target_binary: $(RPPPPOE_DIR)/$(RPPPPOE_BINARY)
	cp -au $(RPPPPOE_DIR)/rppppoe $(TARGET_DIR)/usr/bin/
	cp -au $(RPPPPOE_DIR)/sample-config $(TARGET_DIR)/usr/lib/rppppoe

rppppoe: uclibc rppppoe-target_binary

rppppoe-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(RPPPPOE_DIR) uninstall
	-$(MAKE) -C $(RPPPPOE_DIR) clean

rppppoe-dirclean:
	rm -rf $(RPPPPOE_DIR)
-------------- next part --------------
#############################################################
#
# shorewall
#
#############################################################
SHOREWALL_SOURCE:=shorewall-1.4.3a.tgz
SHOREWALL_SITE:=http://slovakia.shorewall.net/pub/shorewall/
SHOREWALL_DIR:=$(BUILD_DIR)/shorewall-1.4.3a
SHOREWALL_CAT:=zcat
SHOREWALL_BINARY:=shorewall
SHOREWALL_TARGET_BINARY:=/sbin/shorewall

$(DL_DIR)/$(SHOREWALL_SOURCE):
	 $(WGET) -P $(DL_DIR) $(SHOREWALL_SITE)/$(SHOREWALL_SOURCE)

shorewall-source: $(DL_DIR)/$(SHOREWALL_SOURCE)

$(SHOREWALL_DIR)/.unpacked: $(DL_DIR)/$(SHOREWALL_SOURCE)
	$(SHOREWALL_CAT) $(DL_DIR)/$(SHOREWALL_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	touch $(SHOREWALL_DIR)/.unpacked

$(SHOREWALL_DIR)/.configured: $(SHOREWALL_DIR)/.unpacked
	touch  $(SHOREWALL_DIR)/.configured

$(SHOREWALL_DIR)/$(SHOREWALL_BINARY): $(SHOREWALL_DIR)/.configured

# This stuff is needed to work around GNU make deficiencies
shorewall-target_binary: $(SHOREWALL_DIR)/$(SHOREWALL_BINARY)
	mkdir -p $(TARGET_DIR)/etc/shorewall
	mkdir -p $(TARGET_DIR)/usr/share/shorewall
	mkdir -p $(TARGET_DIR)/var/lib/shorewall
	cp -au $(SHOREWALL_DIR)/shorewall $(TARGET_DIR)/sbin/
	cp -au $(SHOREWALL_DIR)/functions $(TARGET_DIR)/usr/share/shorewall/
	cp -au $(SHOREWALL_DIR)/firewall $(TARGET_DIR)/usr/share/shorewall/
	echo "1.4.3" > $(TARGET_DIR)/usr/share/shorewall/version
	cp -au $(SHOREWALL_DIR)/shorewall.conf $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/zones $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/functions $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/common.def $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/policy $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/interfaces $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/hosts $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/rules $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/nat $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/params $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/proxyarp $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/routestopped $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/maclist $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/masq $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/modules $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/tcrules $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/tos $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/tunnels $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/blacklist $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/rfc1918 $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/init $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/start $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/stop $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/stopped $(TARGET_DIR)/etc/shorewall/
	cp -au $(SHOREWALL_DIR)/ecn $(TARGET_DIR)/etc/shorewall/

shorewall: uclibc shorewall-target_binary

shorewall-clean:

shorewall-dirclean:
	rm -rf $(SHOREWALL_DIR)
-------------- next part --------------
#############################################################
#
# zebra
#
#############################################################
ZEBRA_SOURCE:=zebra-0.93b.tar.gz
ZEBRA_SITE:=ftp://ftp.zebra.org/pub/zebra
ZEBRA_DIR:=$(BUILD_DIR)/zebra-0.93b
ZEBRA_CAT:=zcat
ZEBRA_BINARY:=zebra
ZEBRA_TARGET_BINARY:=/usr/bin/zebra

$(DL_DIR)/$(ZEBRA_SOURCE):
	 $(WGET) -P $(DL_DIR) $(ZEBRA_SITE)/$(ZEBRA_SOURCE)

zebra-source: $(DL_DIR)/$(ZEBRA_SOURCE)

$(ZEBRA_DIR)/.unpacked: $(DL_DIR)/$(ZEBRA_SOURCE)
	$(ZEBRA_CAT) $(DL_DIR)/$(ZEBRA_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	touch $(ZEBRA_DIR)/.unpacked

$(ZEBRA_DIR)/.configured: $(ZEBRA_DIR)/.unpacked
	(cd $(ZEBRA_DIR); rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/usr \
		--exec-prefix=/usr \
		--bindir=/usr/bin \
		--sbindir=/usr/sbin \
		--libexecdir=/usr/lib \
		--sysconfdir=/etc \
		--datadir=/usr/share \
		--localstatedir=/var \
		--mandir=/usr/man \
		--infodir=/usr/info \
		--disable-nls \
		--disable-perl-regexp \
		--without-included-regex \
	);
	touch  $(ZEBRA_DIR)/.configured

$(ZEBRA_DIR)/$(ZEBRA_BINARY): $(ZEBRA_DIR)/.configured
	$(MAKE) -C $(ZEBRA_DIR)

# This stuff is needed to work around GNU make deficiencies
zebra-target_binary: $(ZEBRA_DIR)/$(ZEBRA_BINARY)
	cp -au $(ZEBRA_DIR)/zebra/zebra $(TARGET_DIR)/usr/sbin/
	cp -au $(ZEBRA_DIR)/zebra/zebra.conf.sample $(TARGET_DIR)/etc/zebra.conf
	cp -au $(ZEBRA_DIR)/bgpd/bgpd $(TARGET_DIR)/usr/sbin/
	cp -au $(ZEBRA_DIR)/bgpd/bgpd.conf.sample $(TARGET_DIR)/etc/bgpd.conf
	cp -au $(ZEBRA_DIR)/ospfd/ospfd $(TARGET_DIR)/usr/sbin/
	cp -au $(ZEBRA_DIR)/ospfd/ospfd.conf.sample $(TARGET_DIR)/etc/ospfd.conf
	cp -au $(ZEBRA_DIR)/ripd/ripd $(TARGET_DIR)/usr/sbin/
	cp -au $(ZEBRA_DIR)/ripd/ripd.conf.sample $(TARGET_DIR)/etc/ripd.conf

zebra: uclibc zebra-target_binary

zebra-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(ZEBRA_DIR) uninstall
	-$(MAKE) -C $(ZEBRA_DIR) clean

zebra-dirclean:
	rm -rf $(ZEBRA_DIR)


More information about the uClibc mailing list