source: floppyfw/Makefile @ 122

Revision 122, 10.5 KB checked in by root, 8 years ago (diff)

Adding madwifi.

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.0.0
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 properly tested 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 tulip
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 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 ipt_iprange ipt_multiport
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=false
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
168# This one will be installed in add.ffw, alas, the floppy base itself and
169# not it's own package.
170#TARGETS+=mii-diag
171
172TARGETS+=e3
173
174TARGETS+=noip2
175
176TARGETS+=nanotop
177
178TARGETS+=wsmenu
179
180# These needs to be tested.
181TARGETS+=siproxd
182TARGETS+=ucarp
183TARGETS+=lineserv
184# TARGETS+=madwifi
185
186# The hostap target will add patches to the kernel and build a hostap.ffw
187# package with hostapd, hostap-driver and wpa_supplicant and hostap-utils
188# if you set it here.
189# TARGETS+=hostap
190# TARGETS+=hostap-utils
191
192# Not yet
193# TARGETS+=ebtables
194
195# And at last:
196TARGETS+=module-packages
197TARGETS+=floppy
198
199#############################################################
200#
201# You should probably leave this stuff alone unless you know
202# what you are doing.
203#
204#############################################################
205
206TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) $(TARGET_SOFT_FLOAT)
207# TARGET_CC=distcc gcc
208TARGET_CC=gcc
209TARGET_CX=g++
210
211HOSTCC:=distcc gcc
212BASE_DIR:=${shell pwd}
213SOURCE_DIR:=$(BASE_DIR)/sources
214SCRIPTS_DIR:=$(BASE_DIR)/scripts
215CONFIG_DIR:=$(BASE_DIR)/configs
216LICENSES_DIR:=$(BASE_DIR)/licenses
217MODULES_BASE_DIR:=$(BASE_DIR)/modules
218MODULES_DIR:=$(MODULES_BASE_DIR)/2.4-std
219DL_DIR:=$(BASE_DIR)/downloads
220PATCH_DIR=$(BASE_DIR)/patches
221PACKAGES_DIR=$(BASE_DIR)/packages
222PACKAGES_INI_DIR=$(PACKAGES_DIR)/scripts
223PACKAGES_SKELETON_DIR=$(PACKAGES_DIR)/skeleton
224INITRD_DIR=$(BASE_DIR)/initrd
225INITRD_MASTER=$(INITRD_DIR)/master
226ADD_DIR=$(BASE_DIR)/add
227ADD_MASTER=$(ADD_DIR)/master
228
229TMP_DIR=$(BASE_DIR)/tmp
230
231# Need another name maybe?
232BUILD_DIR:=$(BASE_DIR)/build_$(ARCH)$(ARCH_FPU_SUFFIX)
233
234TARFLAGS=--format oldgnu
235
236#TAR_VERBOSE=--verbose
237RM=rm -f
238
239# This may be a problem to use but I'll try.
240# --strip-unneeded
241STRIP=strip --strip-unneeded -g --remove-section=.comment --remove-section=.note
242STRIP_KMOD=strip --strip-debug --remove-section=.comment --remove-section=.note
243STRIP=$(STRIP_KMOD) --strip-unneeded
244
245SSTRIP=$(shell command type sstrip >/dev/null 2>&1 && echo sstrip || echo $(STRIP))
246
247DEPMOD=(cd $(LINUX_DIR); \
248        /sbin/depmod -ae -F System.map -b $(MODULES_DIR) -r $(LINUX_VERSION))
249
250# SED=/bin/sed -i -e
251SED=/usr/bin/perl -p -i -e
252LZMAD=lzmacat
253LZMAC=lzmacomp
254MAKE=/usr/bin/make $(JLEVEL)
255HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
256        -e 's/sparc.*/sparc/' \
257        -e 's/arm.*/arm/g' \
258        -e 's/m68k.*/m68k/' \
259        -e 's/ppc/powerpc/g' \
260        -e 's/v850.*/v850/g' \
261        -e 's/sh[234]/sh/' \
262        -e 's/mips-.*/mips/' \
263        -e 's/mipsel-.*/mipsel/' \
264        -e 's/cris.*/cris/' \
265        -e 's/i[3-9]86/i386/' \
266        )
267
268GNU_HOST_NAME:=$(HOST_ARCH)-pc-linux-gnu
269
270all:   world
271
272TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
273TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS))
274TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
275
276world: $(ADD_MASTER) $(INITRD_MASTER) $(DL_DIR) $(TMP_DIR) $(BUILD_DIR) $(PACKAGES_DIR) $(TARGETS)
277
278.PHONY: all world clean dirclean distclean source $(TARGETS) \
279        $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE)
280
281include makefiles/*.mk
282
283#############################################################
284#
285# staging and target directories do NOT list these as
286# dependancies anywhere else
287#
288#############################################################
289$(TMP_DIR):
290        mkdir -p $(TMP_DIR)
291
292$(DL_DIR):
293        mkdir -p $(DL_DIR)
294
295$(BUILD_DIR):
296        mkdir -p $(BUILD_DIR)
297
298$(PACKAGES_DIR):
299        mkdir -p $(PACKAGES_DIR)
300
301$(MODULES_BASE_DIR):
302        mkdir -p $(MODULES_BASE_DIR)
303
304$(MODULES_DIR):
305        mkdir -p $(MODULES_DIR)
306
307$(ADD_MASTER):
308        cp -a $(ADD_DIR)/skeleton $(ADD_MASTER)
309        -find $(ADD_MASTER) -type d -name CVS -exec $(RM) -r {} \; > /dev/null 2>&1
310        -find $(ADD_MASTER) -type d -name .svn -exec $(RM) -r {} \; > /dev/null 2>&1
311
312$(INITRD_MASTER):
313        cp -a $(INITRD_DIR)/skeleton $(INITRD_MASTER)
314        -find $(INITRD_MASTER) -type d -name CVS -exec $(RM) -r {} \; > /dev/null 2>&1
315        -find $(INITRD_MASTER) -type d -name .svn -exec $(RM) -r {} \; > /dev/null 2>&1
316
317source: $(TARGETS_SOURCE)
318
319#############################################################
320#
321# Cleanup and misc junk
322#
323# Fix later.. (yeah!)
324#
325#############################################################
326clean: $(TARGETS_CLEAN)
327        $(RM) -r $(INITRD_MASTER) $(ADD_MASTER) 
328
329dirclean: $(TARGETS_DIRCLEAN)
330        $(RM) -r $(INITRD_MASTER) $(ADD_MASTER) 
331
332distclean:
333        $(RM) -r $(DL_DIR) $(BUILD_DIR)
334
335veryclean:
336        $(RM) -r $(INITRD_MASTER) 
337        $(RM) -r $(INITRD_DIR)/initrd.sq
338        $(RM) -r $(ADD_MASTER) 
339        $(RM) $(ADD_DIR)/*.ffw $(ADD_DIR)/*.bz2
340        $(RM) -r $(BUILD_DIR)
341        $(RM) -r $(MODULES_BASE_DIR)
342        # Should have the skeleton or packages somewhere else.
343        $(RM) $(PACKAGES_DIR)/*.ffw $(PACKAGES_DIR)/*.bz2
344        $(RM) -r isoimage*
345        $(RM) -r soekris.tar.bz2
346        $(RM) -r flash.tar.bz2
347        # Dangerous..
348        $(RM) -r floppy*
349
350sourceball:
351        $(RM) -r $(BUILD_DIR)
352        set -e; \
353        cd ..; \
354        $(RM) buildroot.tar.bz2; \
355        tar -cvf buildroot.tar buildroot; \
356        bzip2 -9 buildroot.tar
357
358list-targets:
359        @(echo "DIRS:"; \
360                for t in $(TMP_DIR) $(DL_DIR) $(BUILD_DIR) \
361                $(MODULES_BASE_DIR) $(MODULES_DIR) \
362                $(ADD_MASTER) $(INITRD_MASTER) $(PACKAGES_DIR); do \
363                echo -e "\t$$t"; \
364          done \
365        )
366        @echo "TARGETS:"
367        @(for t in $(TARGETS); do \
368                echo -e "\t$$t"; \
369          done \
370        )
371        @echo "TARGETS_SOURCE:"
372        @(for t in $(TARGETS_SOURCE); do \
373                echo -e "\t$$t"; \
374          done \
375        )
376        @echo "TARGETS_CLEAN:"
377        @(for t in $(TARGETS_CLEAN); do \
378                echo -e "\t$$t"; \
379          done \
380        )
381        @echo "TARGETS_DIRCLEAN:"
382        @(for t in $(TARGETS_DIRCLEAN); do \
383                echo -e "\t$$t"; \
384          done \
385        )
Note: See TracBrowser for help on using the repository browser.