ChorusOS 4.0 Production Guide

Makefile

The Makefile generated by mkmk contains two parts. View the contents of the Makefile. The first part has a list of the definitions of variables as defined in Table 4-2, Table 4-3, Table 4-4 and Table 4-5. The second part contains preprocessed copies of the .bf, .lf, and .mf files found in the work directory. In this example there is only a .bf file present in the work directory.

    #
    #		This makefile is generated automatically
    #			in build-IOM/src/os/iom/sys
    #
    ...
    BDIR =  <work_dir>
    BNAME = sys
    MPATH = build-IOM/src/os/iom/sys
    DEFINES = -DNDEBUG -DKERNEL -D_KERNEL -D__FreeBSD__ -DINET \
    -DNO_CACHE -DMSDOSFS -DNFS -DIOM_MALLOC -DSHARED_FD
    INCLUDES = -Isys/include -Ibsd -Ibsd/sys 
    -I/<work_dir>/build-OS/include/sys -Ibsd/machine \
    -I/<work_dir>/build-OS/include/machine \
    -I/<work_dir>/build-OS/include/chorus/iom \
    ...
    FEXCEPTION = OFF
    FFPU = ON
    FOPTIM = ON
    FPROF = OFF
    ...
    FAMILY = ppc60x
    COMPILER = gcc
    VARIABLES = OS_DIR IOM_DIR NUCLEUS_DIR DRV_DIR
    SUB_DIRS = bsd sys
    EXTRA_DIRS = 
    BFILES = sys.bf
    MFILES = 
    DFILES = sys.df
    MODULES = 
    OS_DIR = <work_dir>/build-OS
    IOM_DIR = <work_dir>/build-IOM
    NUCLEUS_DIR = <work_dir>/build-NUCLEUS
    DRV_DIR = <work_dir>/build-DRV
    
    include $(BDIR)/Paths
    
    include $(DEVTOOLS_DIR)/tgt-make/shared.rf
    
    # produced from sys.bf -- begin
     S_LIBS = $(IOM_DIR)/lib/os/iom/sys/lib/ufs.a \
    	         $(IOM_DIR)/lib/os/iom/sys/lib/disk.a \
    	         $(IOM_DIR)/lib/os/iom/sys/lib/gen.a \
    	         $(IOM_DIR)/lib/os/iom/sys/lib/mem.a \
    	         $(IOM_DIR)/lib/os/iom/sys/lib/unresolved.a \
    	         $(NUCLEUS_DIR)/lib/stdc/libC.a \
    	         $(NUCLEUS_DIR)/lib/embedded/libebd.s.a \
    	         $(NUCLEUS_DIR)/lib/cpu/cpu.s.a \
    	         $(OS_DIR)/lib/classix/libcx.a \
    	         $(NUCLEUS_DIR)/lib/classix/libsys.s.a 
     
     BINARY += N_iom.r
     
     N_iom.r: $(S_LIBS)
    	        $(MKLINK) -r -c -e _start -o N_iom.r -B $(S_LIBS)
    # produced from sys.bf -- end
    
    include all.dp
    include $(DEVTOOLS_DIR)/tgt-make/mktgt.rf