source: floppyfw/Makefile @ 90

Revision 90, 9.9 KB checked in by root, 8 years ago (diff)

Changes needed to be able to use the latest busybox snapshot.

Line 
1 
2# Makefile for floppyfw.
3# As you can see, this is based on the buildroot/busybox/uClibc Make system.
4#
5# Changes are Copyright (C) 2003-2004 Thomas Lundquist <thomasez@zelow.no>
6#
7
8# Makefile for a simple busybox/uClibc root filesystem
9#
10# Copyright (C) 2001-2003 Erik Andersen <andersen@codepoet.org>
11# Copyright (C) 2002 by Tim Riker <Tim@Rikers.org>
12#
13# This program is free software; you can redistribute it and/or modify
14# it under the terms of the GNU Library General Public License as
15# published by the Free Software Foundation; either version 2 of the
16# License, or (at your option) any later version.
17#
18# This program is distributed in the hope that it will be useful, but
19# WITHOUT ANY WARRANTY; without even the implied warranty of
20# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21# Library General Public License for more details.
22#
23# You should have received a copy of the GNU Library General Public
24# License along with this program; if not, write to the Free Software
25# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
26# USA
27
28# $Id: Makefile,v 1.31 2005/12/07 19:50:42 thomasez Exp $
29
30#############################################################
31#
32# EDIT this stuff to suit your system and preferences
33#
34# Use := when possible to get precomputation, thereby
35# speeding up the build process.
36#
37#############################################################
38
39# Which version of floppyfw is this?
40FLOPPYFW_VERSION=3.0rc1
41
42# What sortof target system shall we compile this for?
43ARCH:=i386
44#ARCH:=arm
45#ARCH:=mips
46#ARCH:=mipsel
47#ARCH:=powerpc
48#ARCH:=sh4
49#ARCH:=cris
50#ARCH:=m68k
51#ARCH:=v850
52#ARCH:=sparc
53#ARCH:=sh64
54#ARCH:=whatever
55
56# If you want to add FPU/MATH emulation, set this to true;
57# (Not implemented yet.)
58EMULATE_FPU=false
59
60# Command used to download source code
61WGET:=wget --passive-ftp
62
63# Optimize toolchain for which type of CPU?
64# WARNING!!!  CURRENTLY BROKEN!!! LEAVE IT AS $(ARCH)!!!
65OPTIMIZE_FOR_CPU=$(ARCH)
66# WARNING!!!  CURRENTLY BROKEN!!! LEAVE IT AS $(ARCH)!!!
67#OPTIMIZE_FOR_CPU=i486
68#OPTIMIZE_FOR_CPU=strongarm
69#OPTIMIZE_FOR_CPU=whatever
70
71TARGET_OPTIMIZATION=-Os
72TARGET_DEBUGGING= #-g
73
74# Any additional gcc options you may want to include....
75EXTRA_GCC_CONFIG_OPTIONS=
76
77# For SMP machines some stuff can be run in parallel
78# This one sets j<amount of CPUs> but it may be just as good or even better
79# with amount +1
80JLEVEL=-j$(shell expr $(shell grep -i -c '^processor[[:space:]]*:[[:space:]]*[0-9]\+' /proc/cpuinfo) \+ 1)
81# Or if running distcc:
82# JLEVEL=-j5
83
84# Sourceforge-mirror:
85SF_HOST=superb-east
86SF_MIRROR=http://$(SF_HOST).dl.sourceforge.net
87
88# NICs you want in the nics.ffw module package separated by a space.
89# If you want options to the module, put them in a () after the module.
90NIC_MODULES=3c509 3c59x 8139cp 8139too pcnet32 r8169 e100 e1000 ne ne2k-pci forcedeth
91
92#############################################################
93#
94# The list of stuff to build for the target filesystem
95#
96#############################################################
97
98TARGETS+=uclibc
99
100# Probably a good thing even if you choose not to patch anything.
101# This target only unpacks. The linux target does the patching.
102TARGETS+=patch-o-matic
103
104# POM-patches to add:
105# I could have used base but some of the patches has a problem.
106# It's alot here, probably not so smart, cut back later.
107POM_PATCHES=h323-conntrack-nat quake3-conntrack-nat connlimit dstlimit mport pptp-conntrack-nat directx8-conntrack-nat time cuseeme-nat rtsp-conntrack iprange random ipp2p mms-conntrack-nat connrate msnp-conntrack-nat nth sip-conntrack-nat set expire psd time TARPIT
108
109# After switching to a newer p-o-m;
110#
111# Did not apply cleanly: dropped-table tproxy
112#
113# Did not compile cleanly:
114#   policy: (ipt_policy.c:15:22: net/xfrm.h: No such file or directory)
115#
116#   osf: (extensions/libipt_osf.c: In function `help':
117#   extensions/libipt_osf.c:46: warning: too many arguments for format
118#   extensions/libipt_osf.c: In function `parse':
119#   extensions/libipt_osf.c:107: error: `IPT_OSF_CONNECTOR' undeclared (first use in this function)
120#   extensions/libipt_osf.c:107: error: (Each undeclared identifier is reported only once
121#   )
122#
123# Missing: string
124
125# IPTABLES_MODULES: this is a result of the patches you have chosen above and
126# also the included modules in the kernel (also check the kernel config.)
127# This works the same way as NIC_MODULES.
128# If you want options to the module, put them in a () after the module.
129IPTABLES_MODULES=arp_tables arptable_filter iptable_mangle ipt_DSCP ipt_ECN ipt_LOG ipt_MARK ipt_REDIRECT ipt_TCPMSS ipt_TOS ipt_ULOG ipt_conntrack ipt_connlimit ipt_dscp ipt_ecn ipt_helper ipt_length ipt_limit ipt_mac ipt_mark ipt_physdev ipt_pkttype ipt_tcpmss ipt_tos ipt_ttl ipt_unclean ip_conntrack_ftp ip_nat_ftp ip_conntrack_irc(ports=6666,6667,6668,7000) ip_nat_irc sch_htb ip_conntrack_h323 ip_conntrack_rtsp ip_conntrack_pptp ip_conntrack_quake3
130
131#ipt_MIRROR
132#ip_queue
133#ipt_string
134#ip_nat_tftp
135#ip_conntrack_tftp
136#ip_nat_amanda
137#ip_conntrack_amanda
138
139TARGETS+=linux
140
141TARGETS+=busybox
142USE_BUSYBOX_SNAPSHOT=true
143
144TARGETS+=iptables
145
146TARGETS+=ipset
147
148TARGETS+=iproute2
149
150TARGETS+=dnsmasq
151
152TARGETS+=bridgeutils
153
154# TARGETS+=modutils
155
156TARGETS+=pppd
157
158TARGETS+=pppoe
159
160TARGETS+=pcmcia
161
162TARGETS+=wireless-tools
163
164TARGETS+=dropbear
165
166TARGETS+=ethtool
167
168TARGETS+=e3
169
170TARGETS+=noip2
171
172TARGETS+=nanotop
173
174# These needs to be tested.
175TARGETS+=siproxd
176TARGETS+=ucarp
177
178# The hostap target will add patches to the kernel and build a hostap.ffw
179# package with hostapd, hostap-driver and wpa_supplicant and hostap-utils
180# if you set it here.
181# TARGETS+=hostap
182# TARGETS+=hostap-utils
183
184# Not yet
185# TARGETS+=ebtables
186
187# And at last:
188TARGETS+=module-packages
189TARGETS+=floppy
190
191#############################################################
192#
193# You should probably leave this stuff alone unless you know
194# what you are doing.
195#
196#############################################################
197
198TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) $(TARGET_SOFT_FLOAT)
199# TARGET_CC=distcc gcc
200TARGET_CC=gcc
201TARGET_CX=g++
202
203HOSTCC:=distcc gcc
204BASE_DIR:=${shell pwd}
205SOURCE_DIR:=$(BASE_DIR)/sources
206SCRIPTS_DIR:=$(BASE_DIR)/scripts
207CONFIG_DIR:=$(BASE_DIR)/configs
208LICENSES_DIR:=$(BASE_DIR)/licenses
209MODULES_BASE_DIR:=$(BASE_DIR)/modules
210MODULES_DIR:=$(MODULES_BASE_DIR)/2.4-std
211DL_DIR:=$(BASE_DIR)/downloads
212PATCH_DIR=$(BASE_DIR)/patches
213PACKAGES_DIR=$(BASE_DIR)/packages
214PACKAGES_INI_DIR=$(PACKAGES_DIR)/scripts
215PACKAGES_SKELETON_DIR=$(PACKAGES_DIR)/skeleton
216INITRD_DIR=$(BASE_DIR)/initrd
217INITRD_MASTER=$(INITRD_DIR)/master
218ADD_DIR=$(BASE_DIR)/add
219ADD_MASTER=$(ADD_DIR)/master
220
221TMP_DIR=$(BASE_DIR)/tmp
222
223# Need another name maybe?
224BUILD_DIR:=$(BASE_DIR)/build_$(ARCH)$(ARCH_FPU_SUFFIX)
225
226TARFLAGS=--format oldgnu
227
228#TAR_VERBOSE=--verbose
229RM=rm -f
230
231# This may be a problem to use but I'll try.
232# --strip-unneeded
233STRIP=strip --strip-unneeded -g --remove-section=.comment --remove-section=.note
234STRIP_KMOD=strip --strip-debug --remove-section=.comment --remove-section=.note
235STRIP=$(STRIP_KMOD) --strip-unneeded
236
237SSTRIP=$(shell command type sstrip >/dev/null 2>&1 && echo sstrip || echo $(STRIP))
238
239DEPMOD=(cd $(LINUX_DIR); \
240        /sbin/depmod -ae -F System.map -b $(MODULES_DIR) -r $(LINUX_VERSION))
241
242# SED=/bin/sed -i -e
243SED=/usr/bin/perl -p -i -e
244LZMAD=lzmacat
245LZMAC=lzmacomp
246MAKE=/usr/bin/make $(JLEVEL)
247HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
248        -e 's/sparc.*/sparc/' \
249        -e 's/arm.*/arm/g' \
250        -e 's/m68k.*/m68k/' \
251        -e 's/ppc/powerpc/g' \
252        -e 's/v850.*/v850/g' \
253        -e 's/sh[234]/sh/' \
254        -e 's/mips-.*/mips/' \
255        -e 's/mipsel-.*/mipsel/' \
256        -e 's/cris.*/cris/' \
257        -e 's/i[3-9]86/i386/' \
258        )
259
260GNU_HOST_NAME:=$(HOST_ARCH)-pc-linux-gnu
261
262all:   world
263
264TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
265TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS))
266TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
267
268world: $(ADD_MASTER) $(INITRD_MASTER) $(DL_DIR) $(TMP_DIR) $(BUILD_DIR) $(PACKAGES_DIR) $(TARGETS)
269
270.PHONY: all world clean dirclean distclean source $(TARGETS) \
271        $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE)
272
273include makefiles/*.mk
274
275#############################################################
276#
277# staging and target directories do NOT list these as
278# dependancies anywhere else
279#
280#############################################################
281$(TMP_DIR):
282        mkdir -p $(TMP_DIR)
283
284$(DL_DIR):
285        mkdir -p $(DL_DIR)
286
287$(BUILD_DIR):
288        mkdir -p $(BUILD_DIR)
289
290$(PACKAGES_DIR):
291        mkdir -p $(PACKAGES_DIR)
292
293$(MODULES_BASE_DIR):
294        mkdir -p $(MODULES_BASE_DIR)
295
296$(MODULES_DIR):
297        mkdir -p $(MODULES_DIR)
298
299$(ADD_MASTER):
300        cp -a $(ADD_DIR)/skeleton $(ADD_MASTER)
301        -find $(ADD_MASTER) -type d -name CVS -exec $(RM) -r {} \; > /dev/null 2>&1
302        -find $(ADD_MASTER) -type d -name .svn -exec $(RM) -r {} \; > /dev/null 2>&1
303
304$(INITRD_MASTER):
305        cp -a $(INITRD_DIR)/skeleton $(INITRD_MASTER)
306        -find $(INITRD_MASTER) -type d -name CVS -exec $(RM) -r {} \; > /dev/null 2>&1
307        -find $(INITRD_MASTER) -type d -name .svn -exec $(RM) -r {} \; > /dev/null 2>&1
308
309source: $(TARGETS_SOURCE)
310
311#############################################################
312#
313# Cleanup and misc junk
314#
315# Fix later.. (yeah!)
316#
317#############################################################
318clean: $(TARGETS_CLEAN)
319        $(RM) -r $(INITRD_MASTER) $(ADD_MASTER) 
320
321dirclean: $(TARGETS_DIRCLEAN)
322        $(RM) -r $(INITRD_MASTER) $(ADD_MASTER) 
323
324distclean:
325        $(RM) -r $(DL_DIR) $(BUILD_DIR)
326
327sourceball:
328        $(RM) -r $(BUILD_DIR)
329        set -e; \
330        cd ..; \
331        $(RM) buildroot.tar.bz2; \
332        tar -cvf buildroot.tar buildroot; \
333        bzip2 -9 buildroot.tar
334
335list-targets:
336        @(echo "DIRS:"; \
337                for t in $(TMP_DIR) $(DL_DIR) $(BUILD_DIR) \
338                $(MODULES_BASE_DIR) $(MODULES_DIR) \
339                $(ADD_MASTER) $(INITRD_MASTER) $(PACKAGES_DIR); do \
340                echo -e "\t$$t"; \
341          done \
342        )
343        @echo "TARGETS:"
344        @(for t in $(TARGETS); do \
345                echo -e "\t$$t"; \
346          done \
347        )
348        @echo "TARGETS_SOURCE:"
349        @(for t in $(TARGETS_SOURCE); do \
350                echo -e "\t$$t"; \
351          done \
352        )
353        @echo "TARGETS_CLEAN:"
354        @(for t in $(TARGETS_CLEAN); do \
355                echo -e "\t$$t"; \
356          done \
357        )
358        @echo "TARGETS_DIRCLEAN:"
359        @(for t in $(TARGETS_DIRCLEAN); do \
360                echo -e "\t$$t"; \
361          done \
362        )
Note: See TracBrowser for help on using the repository browser.