Changeset 135


Ignore:
Timestamp:
Jul 19, 2010, 8:33:46 PM (4 years ago)
Author:
mjones
Message:

This patch builds libpayload for filo from filo. There are two steps:
1) load libpayload kconfig while configuring filo.
2) build libpayload before filo building.
it can be used by : $MAKE LIBCONFIG_PATH=/path/to/libpayload"

The filo copy of libpayload is kept locally in the build directory for the next rebuild.

Signed-off-by: Cai Bai Yin <caibaiyin.pku@…>
Acked-by: Patrick Georgi <patrick.georgi@…>
Acked-by: Marc Jones <marcj303@…>

Location:
trunk/filo
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/filo/Makefile

    r129 r135  
    2525export obj := $(src)/build 
    2626export objk := $(src)/build/util/kconfig 
     27export LIBCONFIG_PATH := $(src)/../libpayload 
    2728 
    2829export KERNELVERSION      := $(PROGRAM_VERSION) 
     
    103104TARGET  = $(obj)/filo.elf 
    104105 
     106HAVE_LIBCONFIG := $(wildcard $(LIBCONFIG_PATH)) 
     107 
     108all: prepare $(obj)/version.h $(TARGET) 
     109 
     110 
    105111HAVE_LIBPAYLOAD := $(wildcard $(LIBPAYLOAD)) 
    106 ifeq ($(strip $(HAVE_LIBPAYLOAD)),) 
    107 all: 
    108         @printf "\nError: libpayload is not installed!\nexpected: $(LIBPAYLOAD).\n" 
     112ifneq ($(strip $(HAVE_LIBPAYLOAD)),) 
     113libpayload: 
     114        @printf "Found Libpayload $(LIBPAYLOAD).\n" 
    109115else 
    110 all: prepare $(obj)/version.h $(TARGET) 
     116libpayload: $(src)/$(LIB_CONFIG) 
     117        $(Q)printf "building libpayload.\n" 
     118        $(Q)make -C $(LIBCONFIG_PATH) distclean 
     119        $(Q)cp lib.config $(LIBCONFIG_PATH)/.config 
     120        $(Q)make -C $(LIBCONFIG_PATH) oldconfig 
     121        $(Q)make -C $(LIBCONFIG_PATH) DESTDIR=$(src)/build install 
    111122endif 
    112123 
    113 $(obj)/filo: $(src)/.config $(OBJS) 
     124$(obj)/filo: $(src)/.config $(OBJS)  libpayload 
    114125        $(Q)printf "  LD      $(subst $(shell pwd)/,,$(@))\n" 
    115126        $(Q)$(LD) -N -T $(ARCHDIR-y)/ldscript -o $@ $(OBJS) $(LIBPAYLOAD) $(LIBGCC) 
    116127 
    117 $(TARGET): $(obj)/filo 
     128$(TARGET): $(obj)/filo libpayload 
    118129        $(Q)cp $(obj)/filo $@ 
    119130        $(Q)$(NM) $(obj)/filo | sort > $(obj)/filo.map 
     
    123134include util/kconfig/Makefile 
    124135 
    125 $(obj)/%.o: $(src)/%.c 
     136$(obj)/%.o: $(src)/%.c libpayload 
    126137        $(Q)printf "  CC      $(subst $(shell pwd)/,,$(@))\n" 
    127138        $(Q)$(CC) -MMD $(CFLAGS) $(CPPFLAGS) -c -o $@ $< 
     
    149160distclean: clean 
    150161        $(Q)rm -rf build 
    151         $(Q)rm -f .config .config.old ..config.tmp .kconfig.d .tmpconfig* 
     162        $(Q)rm -f .config lib.config .config.old ..config.tmp .kconfig.d .tmpconfig* 
    152163 
    153164FORCE: 
  • trunk/filo/util/kconfig/Makefile

    r126 r135  
    1313Kconfig := Config.in 
    1414 
     15FILO_CONFIG := $(src)/.config 
     16LIB_CONFIG  := $(src)/lib.config 
     17HAVE_FILO_CONFIG := $(wildcard $(FILO_CONFIG)) 
     18HAVE_LIB_CONFIG := $(wildcard $(LIB_CONFIG)) 
     19 
     20ifneq ($(strip $(HAVE_FILO_CONFIG)),) 
     21ifneq ($(strip $(HAVE_LIB_CONFIG)),) 
    1522xconfig: prepare $(objk)/qconf 
     23        $(Q)printf "Libpayload config for FILO.\n" 
     24        $(Q)mv $(FILO_CONFIG) $(FILO_CONFIG)."temp" 
     25        $(Q)mv $(LIB_CONFIG) $(FILO_CONFIG) 
     26        $(Q)$(objk)/qconf $(LIBCONFIG_PATH)/Config.in 
     27        $(Q)mv $(FILO_CONFIG) $(LIB_CONFIG) 
     28        $(Q)printf "Libpayload config done.\n" 
     29        $(Q)mv $(FILO_CONFIG)."temp" $(FILO_CONFIG) 
    1630        $(Q)$(objk)/qconf $(Kconfig) 
    17  
     31else 
     32xconfig: prepare $(objk)/qconf 
     33        $(Q)printf "Lost libpayload config file.\n" 
     34        $(Q)rm -f $(FILO_CONFIG) 
     35endif 
     36else 
     37xconfig: prepare $(objk)/qconf 
     38        $(Q)printf "Libpayload config for FILO.\n" 
     39        $(Q)$(objk)/qconf $(LIBCONFIG_PATH)/Config.in 
     40        $(Q)mv $(FILO_CONFIG) $(LIB_CONFIG) 
     41        $(Q)printf "Libpayload config done.\n" 
     42        $(Q)$(objk)/qconf $(Kconfig) 
     43endif 
     44 
     45ifneq ($(strip $(HAVE_FILO_CONFIG)),) 
     46ifneq ($(strip $(HAVE_LIB_CONFIG)),) 
    1847gconfig: prepare $(objk)/gconf 
     48        $(Q)printf "Libpayload config for FILO.\n" 
     49        $(Q)mv $(FILO_CONFIG) $(FILO_CONFIG)."temp" 
     50        $(Q)mv $(LIB_CONFIG) $(FILO_CONFIG) 
     51        $(Q)$(objk)/gconf $(LIBCONFIG_PATH)/Config.in 
     52        $(Q)mv $(FILO_CONFIG) $(LIB_CONFIG) 
     53        $(Q)printf "Libpayload config done.\n" 
     54        $(Q)mv $(FILO_CONFIG)."temp" $(FILO_CONFIG) 
    1955        $(Q)$(objk)/gconf $(Kconfig) 
    20  
     56else 
     57gconfig: prepare $(objk)/gconf 
     58        $(Q)printf "Lost libpayload config file.\n" 
     59        $(Q)rm -f $(FILO_CONFIG) 
     60endif 
     61else 
     62gconfig: prepare $(objk)/gconf 
     63        $(Q)printf "Libpayload config for FILO.\n" 
     64        $(Q)$(objk)/gconf $(LIBCONFIG_PATH)/Config.in 
     65        $(Q)mv $(FILO_CONFIG) $(LIB_CONFIG) 
     66        $(Q)printf "Libpayload config done.\n" 
     67        $(Q)$(objk)/gconf $(Kconfig) 
     68endif 
     69 
     70ifneq ($(strip $(HAVE_FILO_CONFIG)),) 
     71ifneq ($(strip $(HAVE_LIB_CONFIG)),) 
    2172menuconfig: prepare $(objk)/mconf 
     73        $(Q)printf "Libpayload config for FILO.\n" 
     74        $(Q)mv $(FILO_CONFIG) $(FILO_CONFIG)."temp" 
     75        $(Q)mv $(LIB_CONFIG) $(FILO_CONFIG) 
     76        $(Q)$(objk)/mconf $(LIBCONFIG_PATH)/Config.in 
     77        $(Q)mv $(FILO_CONFIG) $(LIB_CONFIG) 
     78        $(Q)printf "Libpayload config done.\n" 
     79        $(Q)mv $(FILO_CONFIG)."temp" $(FILO_CONFIG) 
    2280        $(Q)$(objk)/mconf $(Kconfig) 
    23  
     81else 
     82menuconfig: prepare $(objk)/mconf 
     83        $(Q)printf "Lost libpayload config file.\n" 
     84        $(Q)rm -f $(FILO_CONFIG) 
     85endif 
     86else 
     87menuconfig: prepare $(objk)/mconf 
     88        $(Q)printf "Libpayload config for FILO.\n" 
     89        $(Q)$(objk)/mconf $(LIBCONFIG_PATH)/Config.in 
     90        $(Q)mv $(FILO_CONFIG) $(LIB_CONFIG) 
     91        $(Q)printf "Libpayload config done.\n" 
     92        $(Q)$(objk)/mconf $(Kconfig) 
     93endif 
     94 
     95ifneq ($(strip $(HAVE_FILO_CONFIG)),) 
     96ifneq ($(strip $(HAVE_LIB_CONFIG)),) 
    2497config: prepare $(objk)/conf 
     98        $(Q)printf "Libpayload config for FILO.\n" 
     99        $(Q)mv $(FILO_CONFIG) $(FILO_CONFIG)."temp" 
     100        $(Q)mv $(LIB_CONFIG) $(FILO_CONFIG) 
     101        $(Q)$(objk)/conf $(LIBCONFIG_PATH)/Config.in 
     102        $(Q)mv $(FILO_CONFIG) $(LIB_CONFIG) 
     103        $(Q)printf "Libpayload config done.\n" 
     104        $(Q)mv $(FILO_CONFIG)."temp" $(FILO_CONFIG) 
    25105        $(Q)$(objk)/conf $(Kconfig) 
    26  
     106else 
     107config: prepare $(objk)/conf 
     108        $(Q)printf "Lost libpayload config file.\n" 
     109        $(Q)rm -f $(FILO_CONFIG) 
     110endif 
     111else 
     112config: prepare $(objk)/conf 
     113        $(Q)printf "Libpayload config for FILO.\n" 
     114        $(Q)$(objk)/conf $(LIBCONFIG_PATH)/Config.in 
     115        $(Q)mv $(FILO_CONFIG) $(LIB_CONFIG) 
     116        $(Q)printf "Libpayload config done.\n" 
     117        $(Q)$(objk)/conf $(Kconfig) 
     118endif 
     119 
     120ifneq ($(strip $(HAVE_FILO_CONFIG)),) 
     121ifneq ($(strip $(HAVE_LIB_CONFIG)),) 
    27122oldconfig: prepare $(objk)/conf 
     123        $(Q)printf "Libpayload config for FILO.\n" 
     124        $(Q)mv $(FILO_CONFIG) $(FILO_CONFIG)."temp" 
     125        $(Q)mv $(LIB_CONFIG) $(FILO_CONFIG) 
     126        $(Q)$(objk)/conf -o $(LIBCONFIG_PATH)/Config.in 
     127        $(Q)mv $(FILO_CONFIG) $(LIB_CONFIG) 
     128        $(Q)printf "Libpayload config done.\n" 
     129        $(Q)mv $(FILO_CONFIG)."temp" $(FILO_CONFIG) 
    28130        $(Q)$(objk)/conf -o $(Kconfig) 
    29  
     131else 
     132oldconfig: prepare $(objk)/conf 
     133        $(Q)printf "Lost libpayload config file.\n" 
     134        $(Q)rm -f $(FILO_CONFIG) 
     135endif 
     136else 
     137oldconfig: prepare $(objk)/conf 
     138        $(Q)printf "Libpayload config for FILO.\n" 
     139        $(Q)$(objk)/conf -o $(LIBCONFIG_PATH)/Config.in 
     140        $(Q)mv .config $(LIB_CONFIG) 
     141        $(Q)printf "Libpayload config done.\n" 
     142        $(Q)$(objk)/conf -o $(Kconfig) 
     143endif 
     144 
     145ifneq ($(strip $(HAVE_FILO_CONFIG)),) 
     146ifneq ($(strip $(HAVE_LIB_CONFIG)),) 
    30147silentoldconfig: prepare $(objk)/conf 
     148        $(Q)printf "Libpayload config for FILO.\n" 
     149        $(Q)mv $(FILO_CONFIG) $(FILO_CONFIG)."temp" 
     150        $(Q)mv $(LIB_CONFIG) $(FILO_CONFIG) 
     151        $(Q)$(objk)/conf -s $(LIBCONFIG_PATH)/Config.in 
     152        $(Q)mv $(FILO_CONFIG) $(LIB_CONFIG) 
     153        $(Q)printf "Libpayload config done.\n" 
     154        $(Q)mv $(FILO_CONFIG)."temp" $(FILO_CONFIG) 
    31155        $(Q)$(objk)/conf -s $(Kconfig) 
     156else 
     157silentoldconfig: prepare $(objk)/conf 
     158        $(Q)printf "Lost libpayload config file.\n" 
     159        $(Q)rm -f $(FILO_CONFIG) 
     160endif 
     161else 
     162silentoldconfig: prepare $(objk)/conf 
     163        $(Q)printf "Libpayload config for FILO.\n" 
     164        $(Q)$(objk)/conf -s $(LIBCONFIG_PATH)/Config.in 
     165        $(Q)mv .config $(LIB_CONFIG) 
     166        $(Q)printf "Libpayload config done.\n" 
     167        $(Q)$(objk)/conf -s $(Kconfig) 
     168 
     169endif 
    32170 
    33171# --- UNUSED, ignore ---------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.