busybox/scripts/Makefile.IMA
<<
>>
Prefs
   1# This is completely unsupported.
   2#
   3# Uasge: make -f scripts/Makefile.IMA
   4#
   5# Fix COMBINED_COMPILE upstream (in the Kbuild) and propagate
   6# the changes back
   7srctree         := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
   8objtree         := $(CURDIR)
   9src             := $(srctree)
  10obj             := $(objtree)
  11
  12# Make generated files
  13DUMMY := $(shell $(Q)$(srctree)/scripts/gen_build_files.sh $(srctree) $(objtree) >&2)
  14
  15# Look for make include files relative to root of src
  16MAKEFLAGS += --include-dir=$(srctree)
  17
  18default: busybox
  19
  20include .config
  21
  22# Cross compiling and selecting different set of gcc/bin-utils
  23ifeq ($(CROSS_COMPILE),)
  24CROSS_COMPILE := $(subst ",,$(CONFIG_CROSS_COMPILER_PREFIX))
  25endif
  26
  27ifneq ($(CROSS_COMPILE),)
  28SUBARCH := $(shell echo $(CROSS_COMPILE) | cut -d- -f1)
  29else
  30SUBARCH := $(shell uname -m)
  31endif
  32SUBARCH := $(shell echo $(SUBARCH) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
  33                                         -e s/arm.*/arm/ -e s/sa110/arm/ \
  34                                         -e s/s390x/s390/ -e s/parisc64/parisc/ \
  35                                         -e s/ppc.*/powerpc/ -e s/mips.*/mips/ )
  36ARCH ?= $(SUBARCH)
  37
  38ifndef HOSTCC
  39HOSTCC = cc
  40endif
  41AS              = $(CROSS_COMPILE)as
  42CC              = $(CROSS_COMPILE)gcc
  43LD              = $(CC) -nostdlib
  44CPP             = $(CC) -E
  45AR              = $(CROSS_COMPILE)ar
  46NM              = $(CROSS_COMPILE)nm
  47STRIP           = $(CROSS_COMPILE)strip
  48OBJCOPY         = $(CROSS_COMPILE)objcopy
  49OBJDUMP         = $(CROSS_COMPILE)objdump
  50
  51CFLAGS   := $(CFLAGS)
  52CPPFLAGS += -D"KBUILD_STR(s)=\#s" #-Q
  53
  54# We need some generic definitions
  55include $(srctree)/scripts/Kbuild.include
  56
  57include Makefile.flags
  58
  59-include $(srctree)/arch/$(ARCH)/Makefile
  60ifdef CONFIG_FEATURE_COMPRESS_USAGE
  61usage_stuff = include/usage_compressed.h
  62endif
  63
  64ifndef BB_VER
  65BB_VER:=""
  66endif
  67
  68WHOLE_PROGRAM:=$(call cc-option,-fwhole-program,)
  69
  70# pull in the config stuff
  71lib-all-y := applets/applets.o
  72lib-y:=
  73include procps/Kbuild
  74lib-all-y += $(patsubst %,procps/%,$(sort $(lib-y)))
  75lib-y:=
  76include networking/Kbuild
  77lib-all-y += $(patsubst %,networking/%,$(sort $(lib-y)))
  78lib-y:=
  79include networking/udhcp/Kbuild
  80lib-all-y += $(patsubst %,networking/udhcp/%,$(sort $(lib-y)))
  81lib-y:=
  82include networking/libiproute/Kbuild
  83lib-all-y += $(patsubst %,networking/libiproute/%,$(sort $(lib-y)))
  84lib-y:=
  85include loginutils/Kbuild
  86lib-all-y += $(patsubst %,loginutils/%,$(sort $(lib-y)))
  87lib-y:=
  88include archival/Kbuild
  89lib-all-y += $(patsubst %,archival/%,$(sort $(lib-y)))
  90lib-y:=
  91include archival/libarchive/Kbuild
  92lib-all-y += $(patsubst %,archival/libarchive/%,$(sort $(lib-y)))
  93lib-y:=
  94include applets/Kbuild
  95lib-all-y += $(patsubst %,applets/%,$(sort $(lib-y)))
  96lib-y:=
  97include e2fsprogs/Kbuild
  98lib-all-y += $(patsubst %,e2fsprogs/%,$(sort $(lib-y)))
  99lib-y:=
 100#include e2fsprogs/old_e2fsprogs/Kbuild
 101#lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/%,$(sort $(lib-y)))
 102#lib-y:=
 103#include e2fsprogs/old_e2fsprogs/ext2fs/Kbuild
 104#lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/ext2fs/%,$(sort $(lib-y)))
 105#lib-y:=
 106#include e2fsprogs/old_e2fsprogs/blkid/Kbuild
 107#lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/blkid/%,$(sort $(lib-y)))
 108#lib-y:=
 109#include e2fsprogs/old_e2fsprogs/uuid/Kbuild
 110#lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/uuid/%,$(sort $(lib-y)))
 111#lib-y:=
 112#include e2fsprogs/old_e2fsprogs/e2p/Kbuild
 113#lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/e2p/%,$(sort $(lib-y)))
 114#lib-y:=
 115include debianutils/Kbuild
 116lib-all-y += $(patsubst %,debianutils/%,$(sort $(lib-y)))
 117lib-y:=
 118include klibc-utils/Kbuild
 119lib-all-y += $(patsubst %,klibc-utils/%,$(sort $(lib-y)))
 120lib-y:=
 121include runit/Kbuild
 122lib-all-y += $(patsubst %,runit/%,$(sort $(lib-y)))
 123lib-y:=
 124include modutils/Kbuild
 125lib-all-y += $(patsubst %,modutils/%,$(sort $(lib-y)))
 126lib-y:=
 127include miscutils/Kbuild
 128lib-all-y += $(patsubst %,miscutils/%,$(sort $(lib-y)))
 129lib-y:=
 130include mailutils/Kbuild
 131lib-all-y += $(patsubst %,mailutils/%,$(sort $(lib-y)))
 132lib-y:=
 133include coreutils/libcoreutils/Kbuild
 134lib-all-y += $(patsubst %,coreutils/libcoreutils/%,$(sort $(lib-y)))
 135lib-y:=
 136include coreutils/Kbuild
 137lib-all-y += $(patsubst %,coreutils/%,$(sort $(lib-y)))
 138lib-y:=
 139include sysklogd/Kbuild
 140lib-all-y += $(patsubst %,sysklogd/%,$(sort $(lib-y)))
 141lib-y:=
 142include shell/Kbuild
 143lib-all-y += $(patsubst %,shell/%,$(sort $(lib-y)))
 144lib-y:=
 145include console-tools/Kbuild
 146lib-all-y += $(patsubst %,console-tools/%,$(sort $(lib-y)))
 147lib-y:=
 148include findutils/Kbuild
 149lib-all-y += $(patsubst %,findutils/%,$(sort $(lib-y)))
 150lib-y:=
 151include util-linux/Kbuild
 152lib-all-y += $(patsubst %,util-linux/%,$(sort $(lib-y)))
 153lib-y:=
 154include util-linux/volume_id/Kbuild
 155lib-all-y += $(patsubst %,util-linux/volume_id/%,$(sort $(lib-y)))
 156lib-y:=
 157include init/Kbuild
 158lib-all-y += $(patsubst %,init/%,$(sort $(lib-y)))
 159lib-y:=
 160include libpwdgrp/Kbuild
 161lib-all-y += $(patsubst %,libpwdgrp/%,$(sort $(lib-y)))
 162lib-y:=
 163include editors/Kbuild
 164lib-all-y += $(patsubst %,editors/%,$(sort $(lib-y)))
 165lib-y:=
 166include printutils/Kbuild
 167lib-all-y += $(patsubst %,printutils/%,$(sort $(lib-y)))
 168lib-y:=
 169include selinux/Kbuild
 170lib-all-y += $(patsubst %,selinux/%,$(sort $(lib-y)))
 171lib-y:=
 172include scripts/Kbuild
 173lib-all-y += $(patsubst %,scripts/%,$(sort $(lib-y)))
 174lib-y:=
 175include libbb/Kbuild
 176lib-all-y += $(patsubst %,libbb/%,$(sort $(lib-y)))
 177lib-y:=
 178
 179comma:=,
 180busybox_unstripped.o: $(usage_stuff) include/applet_tables.h include/NUM_APPLETS.h include/autoconf.h
 181        $(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) \
 182                $(patsubst %,-Wl$(comma)%,$(LDFLAGS) $(EXTRA_LDFLAGS)) \
 183                -DGCC_COMBINE=1 \
 184                --combine $(WHOLE_PROGRAM) \
 185                -funit-at-a-time -Wno-error -std=gnu99  \
 186                -c -o busybox_unstripped.o \
 187                $(lib-all-y:.o=.c)
 188
 189busybox: busybox_unstripped.o
 190        $(srctree)/scripts/trylink \
 191                busybox_unstripped \
 192                "$(CC) $(CFLAGS_busybox)" \
 193                "$(CFLAGS)" \
 194                "$(LDFLAGS)" \
 195                "busybox_unstripped.o" \
 196                "" \
 197                "crypt m"
 198        cp -f $(@)_unstripped $@
 199        -$(STRIP) -s -R .note -R .comment -R .version $@
 200
 201# If .config is newer than include/autoconf.h, someone tinkered
 202# with it and forgot to run make oldconfig.
 203include/autoconf.h: .config
 204        $(MAKE) -f $(srctree)/Makefile silentoldconfig
 205
 206# Override rules for host compile
 207applets/usage: include/autoconf.h
 208        $(HOSTCC) -Wall -O2 -I$(srctree)/include -o applets/usage applets/usage.c
 209
 210applets/applet_tables: include/autoconf.h
 211        $(HOSTCC) -Wall -O2 -I$(srctree)/include -o applets/applet_tables applets/applet_tables.c
 212