-#
+#
# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
# Licensed under the GPL
#
-extra-y := vmlinux.lds.s
-
-# Descend into ../util for make clean. This is here because it doesn't work
-# in arch/um/Makefile.
+extra-y := vmlinux.lds
+clean-files :=
-subdir- = ../util
+obj-y = config.o exec_kern.o exitcode.o \
+ init_task.o irq.o irq_user.o ksyms.o mem.o physmem.o \
+ process_kern.o ptrace.o reboot.o resource.o sigio_user.o sigio_kern.o \
+ signal_kern.o smp.o syscall_kern.o sysrq.o \
+ time_kern.o tlb.o trap_kern.o uaccess.o um_arch.o umid.o
-obj-y = checksum.o config.o exec_kern.o exitcode.o filehandle.o frame_kern.o \
- frame.o helper.o init_task.o irq.o irq_user.o ksyms.o mem.o \
- mem_user.o physmem.o process.o process_kern.o ptrace.o reboot.o \
- resource.o sigio_user.o sigio_kern.o signal_kern.o signal_user.o \
- smp.o syscall_kern.o syscall_user.o sysrq.o sys_call_table.o \
- tempfile.o time.o time_kern.o tlb.o trap_kern.o trap_user.o \
- uaccess_user.o um_arch.o umid.o user_util.o
-
-obj-$(CONFIG_BLK_DEV_INITRD) += initrd_kern.o initrd_user.o
+obj-$(CONFIG_BLK_DEV_INITRD) += initrd.o
obj-$(CONFIG_GPROF) += gprof_syms.o
obj-$(CONFIG_GCOV) += gmon_syms.o
obj-$(CONFIG_TTY_LOG) += tty_log.o
+obj-$(CONFIG_SYSCALL_DEBUG) += syscall.o
obj-$(CONFIG_MODE_TT) += tt/
obj-$(CONFIG_MODE_SKAS) += skas/
user-objs-$(CONFIG_TTY_LOG) += tty_log.o
-USER_OBJS := $(filter %_user.o,$(obj-y)) $(user-objs-y) config.o helper.o \
- process.o tempfile.o time.o tty_log.o umid.o user_util.o
-USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
-
-CFLAGS_frame.o := $(patsubst -fomit-frame-pointer,,$(USER_CFLAGS))
+USER_OBJS := $(user-objs-y) config.o tty_log.o
-# This has to be separate because it needs be compiled with frame pointers
-# regardless of how the rest of the kernel is built.
+include arch/um/scripts/Makefile.rules
-$(obj)/frame.o: $(src)/frame.c
- $(CC) $(CFLAGS_$(notdir $@)) -c -o $@ $<
+targets := config.c config.tmp
-$(USER_OBJS) : %.o: %.c
- $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+# Be careful with the below Sed code - sed is pitfall-rich!
+# We use sed to lower build requirements, for "embedded" builders for instance.
-QUOTE = 'my $$config=`cat $(TOPDIR)/.config`; $$config =~ s/"/\\"/g ; $$config =~ s/\n/\\n"\n"/g ; while(<STDIN>) { $$_ =~ s/CONFIG/$$config/; print $$_ }'
+$(obj)/config.tmp: $(objtree)/.config FORCE
+ $(call if_changed,quote1)
-$(obj)/config.o : $(obj)/config.c
+quiet_cmd_quote1 = QUOTE $@
+ cmd_quote1 = sed -e 's/"/\\"/g' -e 's/^/"/' -e 's/$$/\\n"/' \
+ $< > $@
-quiet_cmd_quote = QUOTE $@
-cmd_quote = $(PERL) -e $(QUOTE) < $< > $@
+$(obj)/config.c: $(src)/config.c.in $(obj)/config.tmp FORCE
+ $(call if_changed,quote2)
-targets += config.c
-$(obj)/config.c : $(src)/config.c.in $(TOPDIR)/.config FORCE
- $(call if_changed,quote)
+quiet_cmd_quote2 = QUOTE $@
+ cmd_quote2 = sed -e '/CONFIG/{' \
+ -e 's/"CONFIG"\;/""/' \
+ -e 'r $(obj)/config.tmp' \
+ -e 'a \' \
+ -e '""\;' \
+ -e '}' \
+ $< > $@