Changeset 135


Ignore:
Timestamp:
Jul 19, 2010, 6:33:46 PM (5 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.