Oops. Forgot these....
This commit is contained in:
parent
bdfd0d78bc
commit
4bcdd72142
195
Rules.mak
Normal file
195
Rules.mak
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
#
|
||||||
|
# This file contains rules which are shared between multiple Makefiles.
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# False targets.
|
||||||
|
#
|
||||||
|
.PHONY: dummy
|
||||||
|
|
||||||
|
#
|
||||||
|
# Special variables which should not be exported
|
||||||
|
#
|
||||||
|
unexport EXTRA_AFLAGS
|
||||||
|
unexport EXTRA_CFLAGS
|
||||||
|
unexport EXTRA_LDFLAGS
|
||||||
|
unexport EXTRA_ARFLAGS
|
||||||
|
unexport SUBDIRS
|
||||||
|
unexport SUB_DIRS
|
||||||
|
unexport ALL_SUB_DIRS
|
||||||
|
unexport O_TARGET
|
||||||
|
|
||||||
|
unexport obj-y
|
||||||
|
unexport obj-n
|
||||||
|
unexport obj-
|
||||||
|
unexport export-objs
|
||||||
|
unexport subdir-y
|
||||||
|
unexport subdir-n
|
||||||
|
unexport subdir-
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get things started.
|
||||||
|
#
|
||||||
|
first_rule: sub_dirs
|
||||||
|
$(MAKE) all_targets
|
||||||
|
|
||||||
|
SUB_DIRS := $(subdir-y)
|
||||||
|
ALL_SUB_DIRS := $(sort $(subdir-y) $(subdir-n) $(subdir-))
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common rules
|
||||||
|
#
|
||||||
|
|
||||||
|
%.s: %.c
|
||||||
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -S $< -o $@
|
||||||
|
|
||||||
|
%.i: %.c
|
||||||
|
$(CPP) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) $< > $@
|
||||||
|
|
||||||
|
%.o: %.c
|
||||||
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -c -o $@ $<
|
||||||
|
@ ( \
|
||||||
|
echo 'ifeq ($(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@))),$$(strip $$(subst $$(comma),:,$$(CFLAGS) $$(EXTRA_CFLAGS) $$(CFLAGS_$@))))' ; \
|
||||||
|
echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
|
||||||
|
echo 'endif' \
|
||||||
|
) > $(dir $@)/.$(notdir $@).flags
|
||||||
|
|
||||||
|
%.o: %.s
|
||||||
|
$(AS) $(AFLAGS) $(EXTRA_CFLAGS) -o $@ $<
|
||||||
|
|
||||||
|
# Old makefiles define their own rules for compiling .S files,
|
||||||
|
# but these standard rules are available for any Makefile that
|
||||||
|
# wants to use them. Our plan is to incrementally convert all
|
||||||
|
# the Makefiles to these standard rules. -- rmk, mec
|
||||||
|
ifdef USE_STANDARD_AS_RULE
|
||||||
|
|
||||||
|
%.s: %.S
|
||||||
|
$(CPP) $(AFLAGS) $(EXTRA_AFLAGS) $(AFLAGS_$@) $< > $@
|
||||||
|
|
||||||
|
%.o: %.S
|
||||||
|
$(CC) $(AFLAGS) $(EXTRA_AFLAGS) $(AFLAGS_$@) -c -o $@ $<
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
%.lst: %.c
|
||||||
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -g -c -o $*.o $<
|
||||||
|
$(TOPDIR)/scripts/makelst $* $(TOPDIR) $(OBJDUMP)
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
all_targets: $(O_TARGET) $(L_TARGET)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Rule to compile a set of .o files into one .o file
|
||||||
|
#
|
||||||
|
ifdef O_TARGET
|
||||||
|
$(O_TARGET): $(obj-y)
|
||||||
|
rm -f $@
|
||||||
|
ifneq "$(strip $(obj-y))" ""
|
||||||
|
$(LD) $(EXTRA_LDFLAGS) -r -o $@ $(filter $(obj-y), $^)
|
||||||
|
else
|
||||||
|
$(AR) rcs $@
|
||||||
|
endif
|
||||||
|
@ ( \
|
||||||
|
echo 'ifeq ($(strip $(subst $(comma),:,$(EXTRA_LDFLAGS) $(obj-y))),$$(strip $$(subst $$(comma),:,$$(EXTRA_LDFLAGS) $$(obj-y))))' ; \
|
||||||
|
echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
|
||||||
|
echo 'endif' \
|
||||||
|
) > $(dir $@)/.$(notdir $@).flags
|
||||||
|
endif # O_TARGET
|
||||||
|
|
||||||
|
#
|
||||||
|
# Rule to compile a set of .o files into one .a file
|
||||||
|
#
|
||||||
|
ifdef L_TARGET
|
||||||
|
$(L_TARGET): $(obj-y)
|
||||||
|
rm -f $@
|
||||||
|
$(AR) $(EXTRA_ARFLAGS) rcs $@ $(obj-y)
|
||||||
|
@ ( \
|
||||||
|
echo 'ifeq ($(strip $(subst $(comma),:,$(EXTRA_ARFLAGS) $(obj-y))),$$(strip $$(subst $$(comma),:,$$(EXTRA_ARFLAGS) $$(obj-y))))' ; \
|
||||||
|
echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
|
||||||
|
echo 'endif' \
|
||||||
|
) > $(dir $@)/.$(notdir $@).flags
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# This make dependencies quickly
|
||||||
|
#
|
||||||
|
fastdep: dummy
|
||||||
|
$(TOPDIR)/scripts/mkdep $(CFLAGS) $(EXTRA_CFLAGS) -- $(wildcard *.[chS]) > .depend
|
||||||
|
ifdef ALL_SUB_DIRS
|
||||||
|
$(MAKE) $(patsubst %,_sfdep_%,$(ALL_SUB_DIRS)) _FASTDEP_ALL_SUB_DIRS="$(ALL_SUB_DIRS)"
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef _FASTDEP_ALL_SUB_DIRS
|
||||||
|
$(patsubst %,_sfdep_%,$(_FASTDEP_ALL_SUB_DIRS)):
|
||||||
|
$(MAKE) -C $(patsubst _sfdep_%,%,$@) fastdep
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# A rule to make subdirectories
|
||||||
|
#
|
||||||
|
subdir-list = $(sort $(patsubst %,_subdir_%,$(SUB_DIRS)))
|
||||||
|
sub_dirs: dummy $(subdir-list)
|
||||||
|
|
||||||
|
ifdef SUB_DIRS
|
||||||
|
$(subdir-list) : dummy
|
||||||
|
$(MAKE) -C $(patsubst _subdir_%,%,$@)
|
||||||
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# A rule to do nothing
|
||||||
|
#
|
||||||
|
dummy:
|
||||||
|
|
||||||
|
#
|
||||||
|
# This is useful for testing
|
||||||
|
#
|
||||||
|
script:
|
||||||
|
$(SCRIPT)
|
||||||
|
|
||||||
|
#
|
||||||
|
# include dependency files if they exist
|
||||||
|
#
|
||||||
|
ifneq ($(wildcard .depend),)
|
||||||
|
include .depend
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(wildcard $(TOPDIR)/.hdepend),)
|
||||||
|
include $(TOPDIR)/.hdepend
|
||||||
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# Find files whose flags have changed and force recompilation.
|
||||||
|
# For safety, this works in the converse direction:
|
||||||
|
# every file is forced, except those whose flags are positively up-to-date.
|
||||||
|
#
|
||||||
|
FILES_FLAGS_UP_TO_DATE :=
|
||||||
|
|
||||||
|
# For use in expunging commas from flags, which mung our checking.
|
||||||
|
comma = ,
|
||||||
|
|
||||||
|
FILES_FLAGS_EXIST := $(wildcard .*.flags)
|
||||||
|
ifneq ($(FILES_FLAGS_EXIST),)
|
||||||
|
include $(FILES_FLAGS_EXIST)
|
||||||
|
endif
|
||||||
|
|
||||||
|
FILES_FLAGS_CHANGED := $(strip \
|
||||||
|
$(filter-out $(FILES_FLAGS_UP_TO_DATE), \
|
||||||
|
$(O_TARGET) $(L_TARGET) $(active-objs) \
|
||||||
|
))
|
||||||
|
|
||||||
|
# A kludge: .S files don't get flag dependencies (yet),
|
||||||
|
# because that will involve changing a lot of Makefiles. Also
|
||||||
|
# suppress object files explicitly listed in $(IGNORE_FLAGS_OBJS).
|
||||||
|
# This allows handling of assembly files that get translated into
|
||||||
|
# multiple object files (see arch/ia64/lib/idiv.S, for example).
|
||||||
|
FILES_FLAGS_CHANGED := $(strip \
|
||||||
|
$(filter-out $(patsubst %.S, %.o, $(wildcard *.S) $(IGNORE_FLAGS_OBJS)), \
|
||||||
|
$(FILES_FLAGS_CHANGED)))
|
||||||
|
|
||||||
|
ifneq ($(FILES_FLAGS_CHANGED),)
|
||||||
|
$(FILES_FLAGS_CHANGED): dummy
|
||||||
|
endif
|
35
applets/Makefile
Normal file
35
applets/Makefile
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Makefile for busybox
|
||||||
|
#
|
||||||
|
# Copyright (C) 1999,2000,2001 by Erik Andersen <andersee@debian.org>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
|
||||||
|
TOPDIR :=..
|
||||||
|
L_TARGET := applets.a
|
||||||
|
EXTRA_CFLAGS+=-I $(TOPDIR)/applets
|
||||||
|
|
||||||
|
obj-y :=
|
||||||
|
obj-n :=
|
||||||
|
obj- :=
|
||||||
|
|
||||||
|
obj-y += applets.o busybox.o usage.o
|
||||||
|
|
||||||
|
# Hand off to toplevel Rules.mak
|
||||||
|
include $(TOPDIR)/Rules.mak
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(L_TARGET) *.o core
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user