Respect linker order
[coreboot.git] / util / kconfig / Makefile
index 4879b25c5a628aa0594ddb5fb28f44e9dfd1f95b..0e108a33c004c331b42aa0b4120b08fd2c54d993 100644 (file)
@@ -4,24 +4,30 @@
 
 PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config
 
+_OS=$(shell uname -s |cut -c-7)
+regex-objs=
+ifeq ($(_OS),MINGW32)
+       regex-objs=regex.o
+endif
+
 Kconfig := src/Kconfig
 
-xconfig: prepare $(objk)/qconf
+xconfig: $(objk)/qconf
        $(objk)/qconf $(Kconfig)
 
-gconfig: prepare $(objk)/gconf
+gconfig: $(objk)/gconf
        $(objk)/gconf $(Kconfig)
 
-menuconfig: prepare $(objk)/mconf
+menuconfig: $(objk)/mconf
        $(objk)/mconf $(Kconfig)
 
-config: prepare $(objk)/conf
+config: $(objk)/conf
        $(objk)/conf $(Kconfig)
 
-oldconfig: prepare $(objk)/conf
+oldconfig: $(objk)/conf
        $(objk)/conf -o $(Kconfig)
 
-silentoldconfig: prepare $(objk)/conf
+silentoldconfig: $(objk)/conf
        $(objk)/conf -s $(Kconfig)
 
 # --- UNUSED, ignore ----------------------------------------------------------
@@ -51,19 +57,19 @@ update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
 
 PHONY += randconfig allyesconfig allnoconfig allmodconfig defconfig
 
-randconfig: prepare $(objk)/conf
+randconfig: $(objk)/conf
        $(objk)/conf -r $(Kconfig)
 
-allyesconfig: prepare $(objk)/conf
+allyesconfig: $(objk)/conf
        $(objk)/conf -y $(Kconfig)
 
-allnoconfig: prepare $(objk)/conf
+allnoconfig: $(objk)/conf
        $(objk)/conf -n $(Kconfig)
 
-allmodconfig: prepare $(objk)/conf
+allmodconfig: $(objk)/conf
        $(objk)/conf -m $(Kconfig)
 
-defconfig: prepare $(objk)/conf
+defconfig: $(objk)/conf
 ifeq ($(KBUILD_DEFCONFIG),)
        $(objk)/conf -d $(Kconfig)
 else
@@ -71,7 +77,7 @@ else
        $(objk)/conf -D $(KBUILD_DEFCONFIG) $(Kconfig)
 endif
 
-%_defconfig: prepare $(objk)/conf
+%_defconfig: $(objk)/conf
        $(objk)/conf -D configs/$@ $(Kconfig)
 
 # Help text used by make help
@@ -113,8 +119,8 @@ HOST_EXTRACFLAGS += -DLOCALE
 lxdialog := lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o
 lxdialog += lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o
 
-conf-objs      := conf.o  zconf.tab.o
-mconf-objs     := mconf.o zconf.tab.o $(lxdialog)
+conf-objs      := conf.o  zconf.tab.o $(regex-objs)
+mconf-objs     := mconf.o zconf.tab.o $(lxdialog) $(regex-objs)
 kxgettext-objs := kxgettext.o zconf.tab.o
 
 hostprogs-y := conf qconf gconf kxgettext
@@ -133,11 +139,11 @@ endif
 
 ifeq ($(qconf-target),1)
 qconf-cxxobjs  := qconf.o
-qconf-objs     := kconfig_load.o zconf.tab.o
+qconf-objs     := kconfig_load.o zconf.tab.o $(regex-objs)
 endif
 
 ifeq ($(gconf-target),1)
-gconf-objs     := gconf.o kconfig_load.o zconf.tab.o
+gconf-objs     := gconf.o kconfig_load.o zconf.tab.o $(regex-objs)
 endif
 
 clean-files    := lkc_defs.h qconf.moc .tmp_qtcheck \
@@ -174,7 +180,7 @@ $(objk)/.tmp_qtcheck: $(srck)/Makefile
 -include $(objk)/.tmp_qtcheck
 
 # QT needs some extra effort...
-$(objk)/.tmp_qtcheck: prepare
+$(objk)/.tmp_qtcheck:
        @set -e; dir=""; pkg=""; \
        pkg-config --exists qt 2> /dev/null && pkg=qt; \
        pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \
@@ -222,7 +228,7 @@ ifeq ($(gconf-target),1)
 -include $(objk)/.tmp_gtkcheck
 
 # GTK needs some extra effort, too...
-$(objk)/.tmp_gtkcheck: prepare
+$(objk)/.tmp_gtkcheck:
        @if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then               \
                if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then                  \
                        touch $@;                                                               \
@@ -298,7 +304,7 @@ $(objk)/qconf: $(patsubst %,$(objk)/%,$(qconf-cxxobjs)) \
 $(objk)/gconf: $(patsubst %,$(objk)/%,$(gconf-objs))
        $(HOSTCC) $(HOSTCFLAGS) $(HOSTLOADLIBES_gconf) -o $@ $^
 $(objk)/mconf: $(patsubst %,$(objk)/%,$(mconf-objs))
-       $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES) -o $@ $^
+       $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $^ $(HOST_LOADLIBES) -o $@
 $(objk)/conf: $(patsubst %,$(objk)/%,$(conf-objs))
        $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -o $@ $^
 
@@ -306,6 +312,8 @@ $(objk)/mconf.o: $(srck)/mconf.c
        $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $<
 $(objk)/conf.o: $(srck)/conf.c
        $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $<
+$(objk)/regex.o: $(srck)/regex.c
+       $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -DHAVE_STRING_H -c -o $@ $<
 
 $(objk)/zconf.tab.o: $(objk)/zconf.tab.c $(objk)/lex.zconf.c \
                     $(objk)/zconf.hash.c
@@ -330,8 +338,8 @@ $(objk)/zconf.tab.c: $(srck)/zconf.tab.c_shipped
 
 $(objk)/lxdialog/lxdialog: $(objk)/dochecklxdialog \
                           $(patsubst %,$(objk)/lxdialog/%,$(lxdialog))
-       $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES) \
-               $(patsubst %,$(objk)/lxdialog/%,$(lxdialog)) -o $@
+       $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
+               $(patsubst %,$(objk)/lxdialog/%,$(lxdialog)) $(HOST_LOADLIBES) -o $@
 $(objk)/lxdialog/%.o: $(srck)/lxdialog/%.c
        $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $^ -c -o $@