Makefile generation.. an experiment

George Boudreau georgeb at linuxfromscratch.org
Mon Oct 16 20:32:43 PDT 2006


Manuel,
   I was expanding on an suggestion from Dan concerning simplification 
of the generated Makefile.
   This code is very raw but it does work for LUSER with tests enabled 
in LFS. I am still working on a method to include the optimization 
switches.
   This method has possibilities of reducing both the generated makefile 
and removing many of the common_functions procedures.




define LUSER_build
  @$(call echo_message, Building)
  @./progress_bar.sh $@ $$PPID &
  @echo -e "\n`date`\n\nKB: `du -skx --exclude=$(SCRIPT_ROOT) 
$(MOUNT_PT)`\n" >logs/$@
  @$(call remove_existing_dirs,$(1))
  @$(call unpack,$(1))
  @$(call get_pkg_root_LUSER)
  @if [ $(TEST) = "3" ]; then \
    @echo "export  TEST_LOG=$(TESTLOGDIR)/$@" >> envars; && \
    echo -e '\n`date`\n' >$(TESTLOGDIR)/$@;
   fi;
   @( time { source ~/.bashrc && $(CMDSDIR)/chapter05/$@ >> logs/$@ 
2>&1; } ) 2>> logs/$@ && $(PRT_DU) >> logs/$@
   @$(call remove_build_dirs,$(2))
   @$(call housekeeping)
endef


028-binutils-pass1:  022-settingenvironment
	$(call LUSER_build,binutils-2.17.tar.bz2,binutils)

029-gcc-pass1:  028-binutils-pass1
	$(call LUSER_build,gcc-4.1.1.tar.bz2,gcc)

030-linux-headers:  029-gcc-pass1
	$(call LUSER_build,linux-2.6.18.tar.bz2,linux-headers)

031-glibc:  030-linux-headers
	$(call LUSER_build,glibc-2.5.tar.bz2,glibc)

032-adjusting:  031-glibc
	@$(call echo_message, Building)
	@./progress_bar.sh $@ $$PPID &
	@echo -e "\n`date`\n\nKB: `du -skx --exclude=$(SCRIPT_ROOT) 
$(MOUNT_PT)`\n" >logs/$@
	@( time { source ~/.bashrc && $(CMDSDIR)/chapter05/$@ >> logs/$@ 2>&1; 
} ) 2>> logs/$@ && \
	$(PRT_DU) >> logs/$@
	@$(call housekeeping)

036-gcc-pass2:  032-adjusting
	$(call LUSER_build,gcc-4.1.1.tar.bz2,gcc)

037-binutils-pass2:  036-gcc-pass2
	$(call LUSER_build,binutils-2.17.tar.bz2,binutils)

038-ncurses:  037-binutils-pass2
	$(call LUSER_build,ncurses-5.5.tar.gz,ncurses)

039-bash:  038-ncurses
	$(call LUSER_build,bash-3.1.tar.gz,bash)

....





More information about the alfs-discuss mailing list