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)
  52
  53# We need some generic definitions
  54include $(srctree)/scripts/Kbuild.include
  55
  56include Makefile.flags
  57
  58-include $(srctree)/arch/$(ARCH)/Makefile
  59ifdef CONFIG_FEATURE_COMPRESS_USAGE
  60usage_stuff = include/usage_compressed.h
  61endif
  62
  63ifndef BB_VER
  64BB_VER:=""
  65endif
  66
  67WHOLE_PROGRAM:=$(call cc-option,-fwhole-program,)
  68
  69# pull in the config stuff
  70lib-all-y := applets/applets.o
  71lib-y:=
  72include procps/Kbuild
  73lib-all-y += $(patsubst %,procps/%,$(sort $(lib-y)))
  74lib-y:=
  75include networking/Kbuild
  76lib-all-y += $(patsubst %,networking/%,$(sort $(lib-y)))
  77lib-y:=
  78include networking/udhcp/Kbuild
  79lib-all-y += $(patsubst %,networking/udhcp/%,$(sort $(lib-y)))
  80lib-y:=
  81include networking/libiproute/Kbuild
  82lib-all-y += $(patsubst %,networking/libiproute/%,$(sort $(lib-y)))
  83lib-y:=
  84include loginutils/Kbuild
  85lib-all-y += $(patsubst %,loginutils/%,$(sort $(lib-y)))
  86lib-y:=
  87include archival/Kbuild
  88lib-all-y += $(patsubst %,archival/%,$(sort $(lib-y)))
  89lib-y:=
  90include archival/libarchive/Kbuild
  91lib-all-y += $(patsubst %,archival/libarchive/%,$(sort $(lib-y)))
  92lib-y:=
  93include applets/Kbuild
  94lib-all-y += $(patsubst %,applets/%,$(sort $(lib-y)))
  95lib-y:=
  96include e2fsprogs/Kbuild
  97lib-all-y += $(patsubst %,e2fsprogs/%,$(sort $(lib-y)))
  98lib-y:=
  99#include e2fsprogs/old_e2fsprogs/Kbuild
 100#lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/%,$(sort $(lib-y)))
 101#lib-y:=
 102#include e2fsprogs/old_e2fsprogs/ext2fs/Kbuild
 103#lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/ext2fs/%,$(sort $(lib-y)))
 104#lib-y:=
 105#include e2fsprogs/old_e2fsprogs/blkid/Kbuild
 106#lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/blkid/%,$(sort $(lib-y)))
 107#lib-y:=
 108#include e2fsprogs/old_e2fsprogs/uuid/Kbuild
 109#lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/uuid/%,$(sort $(lib-y)))
 110#lib-y:=
 111#include e2fsprogs/old_e2fsprogs/e2p/Kbuild
 112#lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/e2p/%,$(sort $(lib-y)))
 113#lib-y:=
 114include debianutils/Kbuild
 115lib-all-y += $(patsubst %,debianutils/%,$(sort $(lib-y)))
 116lib-y:=
 117include klibc-utils/Kbuild
 118lib-all-y += $(patsubst %,klibc-utils/%,$(sort $(lib-y)))
 119lib-y:=
 120include runit/Kbuild
 121lib-all-y += $(patsubst %,runit/%,$(sort $(lib-y)))
 122lib-y:=
 123include modutils/Kbuild
 124lib-all-y += $(patsubst %,modutils/%,$(sort $(lib-y)))
 125lib-y:=
 126include miscutils/Kbuild
 127lib-all-y += $(patsubst %,miscutils/%,$(sort $(lib-y)))
 128lib-y:=
 129include mailutils/Kbuild
 130lib-all-y += $(patsubst %,mailutils/%,$(sort $(lib-y)))
 131lib-y:=
 132include coreutils/libcoreutils/Kbuild
 133lib-all-y += $(patsubst %,coreutils/libcoreutils/%,$(sort $(lib-y)))
 134lib-y:=
 135include coreutils/Kbuild
 136lib-all-y += $(patsubst %,coreutils/%,$(sort $(lib-y)))
 137lib-y:=
 138include sysklogd/Kbuild
 139lib-all-y += $(patsubst %,sysklogd/%,$(sort $(lib-y)))
 140lib-y:=
 141include shell/Kbuild
 142lib-all-y += $(patsubst %,shell/%,$(sort $(lib-y)))
 143lib-y:=
 144include console-tools/Kbuild
 145lib-all-y += $(patsubst %,console-tools/%,$(sort $(lib-y)))
 146lib-y:=
 147include findutils/Kbuild
 148lib-all-y += $(patsubst %,findutils/%,$(sort $(lib-y)))
 149lib-y:=
 150include util-linux/Kbuild
 151lib-all-y += $(patsubst %,util-linux/%,$(sort $(lib-y)))
 152lib-y:=
 153include util-linux/volume_id/Kbuild
 154lib-all-y += $(patsubst %,util-linux/volume_id/%,$(sort $(lib-y)))
 155lib-y:=
 156include init/Kbuild
 157lib-all-y += $(patsubst %,init/%,$(sort $(lib-y)))
 158lib-y:=
 159include libpwdgrp/Kbuild
 160lib-all-y += $(patsubst %,libpwdgrp/%,$(sort $(lib-y)))
 161lib-y:=
 162include editors/Kbuild
 163lib-all-y += $(patsubst %,editors/%,$(sort $(lib-y)))
 164lib-y:=
 165include printutils/Kbuild
 166lib-all-y += $(patsubst %,printutils/%,$(sort $(lib-y)))
 167lib-y:=
 168include selinux/Kbuild
 169lib-all-y += $(patsubst %,selinux/%,$(sort $(lib-y)))
 170lib-y:=
 171include scripts/Kbuild
 172lib-all-y += $(patsubst %,scripts/%,$(sort $(lib-y)))
 173lib-y:=
 174include libbb/Kbuild
 175lib-all-y += $(patsubst %,libbb/%,$(sort $(lib-y)))
 176lib-y:=
 177
 178comma:=,
 179busybox_unstripped.o: $(usage_stuff) include/applet_tables.h include/NUM_APPLETS.h include/autoconf.h
 180        $(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) \
 181                $(patsubst %,-Wl$(comma)%,$(LDFLAGS) $(EXTRA_LDFLAGS)) \
 182                -DGCC_COMBINE=1 \
 183                --combine $(WHOLE_PROGRAM) \
 184                -funit-at-a-time -Wno-error -std=gnu99  \
 185                -c -o busybox_unstripped.o \
 186                $(lib-all-y:.o=.c)
 187
 188busybox: busybox_unstripped.o
 189        $(srctree)/scripts/trylink \
 190                busybox_unstripped \
 191                "$(CC) $(CFLAGS_busybox)" \
 192                "$(CFLAGS)" \
 193                "$(LDFLAGS)" \
 194                "busybox_unstripped.o" \
 195                "" \
 196                "crypt m"
 197        cp -f $(@)_unstripped $@
 198        -$(STRIP) -s -R .note -R .comment -R .version $@
 199
 200# If .config is newer than include/autoconf.h, someone tinkered
 201# with it and forgot to run make oldconfig.
 202include/autoconf.h: .config
 203        $(MAKE) -f $(srctree)/Makefile silentoldconfig
 204
 205# Override rules for host compile
 206applets/usage: include/autoconf.h
 207        $(HOSTCC) -Wall -O2 -I$(srctree)/include -o applets/usage applets/usage.c
 208
 209applets/applet_tables: include/autoconf.h
 210        $(HOSTCC) -Wall -O2 -I$(srctree)/include -o applets/applet_tables applets/applet_tables.c
 211