makefile
来自「OTP是开放电信平台的简称」· 代码 · 共 442 行
TXT
442 行
############################################################################## Makefile for building an ERTS load module########################################################################################################################################################### CONFIGURATION############################################################################## Main (Ethernet) IP address and default gateway.# target IPIP_ADDRESS = 134.138.176.239# eth1ETH_ADDR = 0x00,0x80,0x42,0x0e,0xeb,0xc5 # eth2#ETH_ADDR = 0x00,0x80,0x42,0x0e,0xeb,0xc6 ETH_IP_ADDR = $(IP_ADDRESS)ETH_SUBNETMASK = 255.255.252.0DEFAULT_GATEWAY = 134.138.176.1# OSE kernel library.KRN = 750# LM target nameTARGET = lm_ose_ppc$(KRN)############################################################################## PATHS#############################################################################OSEROOT = /usr/local/share/pgm/ose-4.4DIABROOT = /usr/local/share/pgm/diab-4.3fPLATFORMROOT = $(OSEROOT)/powerpcPLATFORMSRC = $(PLATFORMROOT)/srcPLATFORMLIB = $(PLATFORMROOT)/libKRNROOT = $(PLATFORMROOT)/krn-$(KRN)KRNSRC = $(KRNROOT)/srcKRNLIB = $(KRNROOT)/libHOSTROOT = $(OSEROOT)/solaris2HOSTBIN = $(HOSTROOT)/binEXAMPLES_COMMON = $(OSEROOT)/examples/commonEXAMPLES_COMMON_INCLUDE = $(EXAMPLES_COMMON)/includeEXAMPLES_COMMON_SRC = $(EXAMPLES_COMMON)/srcRELDIR = /tmp/erl_ose_releaseBUILD_DIR = $(RELDIR)/build_erl_oseMAKEROOT = $(BUILD_DIR)/lm/erlUSER_LIBDIR = $(BUILD_DIR)/erl_utils/lib# Output directory.OBJDIR = $(MAKEROOT)/obj############################################################################## HOST TOOLS#############################################################################CP = cpRM = rm -fMKDIR = mkdirRMDIR = rm -rfECHO = @echoAR = ar cq############################################################################## CROSS COMPILER.############################################################################## DIAB compiler, assembler, and linker.DIABBIN = $(DIABROOT)/SUNS/binOSEDIABLIB = $(OSEROOT)/powerpc/lib/diabOSEDIABSRC = $(OSEROOT)/powerpc/src/diab# HW float#COMPTARGET = -tPPC750EH:ose# SW floatCOMPTARGET = -tPPC750ES:ose# no float#COMPTARGET = -tPPC750EN:ose#COMPTARGET = -tPPC750EN:rtasim# AssemblerASM = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) dasASMFLAGS = -Xmnem-all $(COMPTARGET)ASMOUT = -o $@ # name of the output file# C preprocessorCPP = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) dcc -ECPPTOFILE = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) dcc -PCPPFLAGS += $(COMPTARGET)# C compilerCC = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) dcc -cFLAGS += $(COMPTARGET)#FLAGS += -XO -Xkill-opt=0x2000080FLAGS += -XO#FLAGS += -g#FLAGS += -XansiFLAGS += -Xdebug-struct-all -Xforce-declarations \ -Xforce-prototypes -Xsmall-const=0 -Xstrings-in-text \ -Xsmall-data=0CFLAGS += $(FLAGS)CCOUT = -o $@ # name of the output-file# ELF linkerLD = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) dldLDFLAGS += -r2 -e zzmain -m6 $(COMPTARGET) $(LCF)LCD = $(LCF)LCFDEFINES += -DPOWERPC -DIMAGE_START=0x00400000 -DIMAGE_MAX_LENGTH=8196000LDOUT = -o $@ # name of the output-fileLCFSRC = lm_diab.lcfLCF = $(OBJDIR)/lm.lcf# Tool for inserting conf data into elfINSERTCONF = $(HOSTBIN)/insert_conf -i# ELF to SREC converterELF2SREC = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) ddump -R -vELF2SRECFLAGS += -y1000000 # maximum gap-size permittedELF2SRECOUT = -o $@# ELF to binary converterELF2BIN = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) ddump -R -uELF2BINFLAGS += -y1000000 # maximum gap-size permittedELF2BINOUT = -o $@### Libraries ####LIBDIRS += -L$(OSEDIABLIB)/PPC/ose#LIBDIRS += -L$(OSEDIABLIB)/PPCE/ose# no float#LIBDIRS += -L$(OSEDIABLIB)/PPCEN/ose# HW float#LIBDIRS += -L$(OSEDIABLIB)/PPCEH/ose# SW floatLIBDIRS += -L$(OSEDIABLIB)/PPCES/oseINCLUDES += -I$(OSEROOT)/powerpc/include/diabLIBRARIES += -limpfpLIBRARIES += -lcLIBRARIES += -lm############################################################################## CRT#############################################################################OSEDEF_H_DEFINES += -DINFMT_FLOATING_POINTOBJECTS += $(OBJDIR)/infmt.oOBJECTS += $(OBJDIR)/outfmt.oLIBRARIES += -lcrt############################################################################## DBGPRINTF#############################################################################OBJECTS += $(OBJDIR)/dbgprintf.o# use serialOSEDEF_H_DEFINES += -DDBGPRINTF_SERUNIT=$(COM1_UNIT)OSEDEF_H_DEFINES += -DDBGPRINTF_SERNAME=$(COM1_NAME)OSEDEF_H_DEFINES += -DUSE_DEBUG_PRINTF############################################################################## HEAP#############################################################################SIGFILES += $(PLATFORMROOT)/include/heap.sigOBJECTS += $(OBJDIR)/heapcon.oLIBRARIES += -lheap############################################################################## INET#############################################################################SIGFILES += $(PLATFORMROOT)/include/inet.sigSIGFILES += $(PLATFORMROOT)/include/inetmib.sigSIGFILES += $(PLATFORMROOT)/include/inetlink.sigLIBRARIES += -linett -linetutilLIBRARIES += -llnh############################################################################## EFS#############################################################################SIGFILES += $(PLATFORMROOT)/include/ddb.sigSIGFILES += $(PLATFORMROOT)/include/ddc.sigSIGFILES += $(PLATFORMROOT)/include/efs.sigSIGFILES += $(PLATFORMROOT)/include/fm.sigLIBRARIES += -lefs############################################################################## KERNEL#############################################################################INCLUDES += -I$(KRNROOT)/includeDEFINES += -DOSE_DELTA -D_OSE_ DEFINES += -DBIG_ENDIANOBJECTS += $(OBJDIR)/osemain.oLIBDIRS += -L$(KRNROOT)/lib LIBRARIES += -lkrnflib # opt for speed# LIBRARIES += -lkrn0xxx# opt for safety #LIBRARIES += -lkrn1xxx############################################################################## RTC#############################################################################SIGFILES += $(PLATFORMROOT)/include/rtc.sigLIBRARIES += -lrtc############################################################################## PRH############################################################################## for LMsOBJECTS += $(OBJDIR)/lmcon.oLIBRARIES += -lprh############################################################################## SHELL#############################################################################LIBRARIES += -lshell############################################################################## TOSV#############################################################################LIBRARIES += -ltosv############################################################################## PTHREADS#############################################################################LIBRARIES += -losepthread############################################################################## ERLANG#############################################################################ERL_PLATFORM = ose_ppc750ERTS_VER = 5.3ERL_OBJ_DIR = $(RELDIR)/erts-$(ERTS_VER)/binEI_VER = 3.3.2EI_LIBDIR = $(RELDIR)/lib/erl_interface-$(EI_VER)/libEI_INCLDIR = $(RELDIR)/lib/erl_interface-$(EI_VER)/includeBEAM_DIR = /clearcase/otp/erts/bin/ose_ppc750ERL_UTILS_SRC = $(BUILD_DIR)/erl_utilsERL_PORT_SRC = $(BUILD_DIR)/port_progsERL_DRV_SRC = $(BUILD_DIR)/driversERL_PORT_OBJS = $(OBJDIR)/erl_user_pgm.o \ $(OBJDIR)/erl_stat_port_ex.o \ $(OBJDIR)/erl_stat_portdrv_ex.oERL_MISC_OBJS = $(OBJDIR)/erl_inet_cfg.o $(OBJDIR)/erl_ppl_drv.oERL_DBG_OBJS = $(ERL_PORT_OBJS) $(ERL_MISC_OBJS) $(OBJDIR)/erl.exec.dbg.oERL_OBJS = $(ERL_PORT_OBJS) $(ERL_MISC_OBJS) $(OBJDIR)/erl.exec.o ERL_TARGET = erl_$(TARGET)ERL_DBG_TARGET = erl_$(TARGET).dbgINCLUDES += -I$(ERL_UTILS_SRC) -I$(RELDIR)/erts-$(ERTS_VER)/src -I$(EI_INCLDIR)LIBDIRS += -L$(USER_LIBDIR) -L$(EI_LIBDIR)LIBRARIES += -lei############################################################################## COMPILATION FLAGS#############################################################################STDINCLUDES = -I$(PLATFORMROOT)/std-includeINCLS = -I. -I$(PLATFORMROOT)/include $(STDINCLUDES) $(INCLUDES) \ -I$(EXAMPLES_COMMON_INCLUDE) $(BSPINC) $(SIGFILES)DEFS = $(DEFINES) $(BSPDEFINE) $(OSEDEF_H_DEFINES) $(LCFDEFINES)LIBDIRS +=LIBS = -L$(PLATFORMLIB) $(LIBRARIES)OBJS = $(OBJECTS) $(TEST_OBJS)############################################################################## MAKE USAGE############################################################################## This section contains the default tag evaluated by make if no command line# parameters are entered.usage: $(ECHO) "Available make targets are:" $(ECHO) "clean - delete the directory $(OBJDIR) and all its files." $(ECHO) "erlopt - opt compile Erlang load module." $(ECHO) "erldbg - debug compile Erlang load module." $(ECHO) "erllib - build user library." $(ECHO) ""############################################################################## COMPILE RULES#############################################################################$(OBJDIR)/erl.exec.dbg.o: $(ERL_UTILS_SRC)/erl.exec.c $(CC) $(CFLAGS) $(DEFS) -DDEBUG $(INCLS) $(CCOUT) $<$(OBJDIR)/erl.exec.o: $(ERL_UTILS_SRC)/erl.exec.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/%.o: $(ERL_UTILS_SRC)/%.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/%.o: $(ERL_PORT_SRC)/%.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/%.o: $(ERL_DRV_SRC)/%.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<# Generic compile directives.$(OBJDIR)/%.o: %.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/%.o: $(SRCDIR)/%.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/%.o: $(TARGETROOT)/src/%.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/%.o: $(BSPSRC)/%.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/%.o: $(BSPDBG)/%.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/%.o: $(KRNSRC)/%.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/%.o: $(OBJDIR)/%.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/%.o: $(PLATFORMSRC)/%.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/%.o: $(OSEDIABSRC)/%.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/osemain.o: $(KRNSRC)/osemain.c osemain.con $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<# Generic assembly directives.$(OBJDIR)/%.o: $(KRNSRC)/%.s $(ASM) $(ASMFLAGS) $(CCOUT) $<$(OBJDIR)/%.o: $(BSPSRC)/%.s $(ASM) $(ASMFLAGS) $(CCOUT) $<$(OBJDIR)/%.o: $(TARGETROOT)/lib/%.s $(ASM) $(ASMFLAGS) $(CCOUT) $<############################################################################## LINKING AND GENERATING BINARY#############################################################################$(OBJDIR)/$(ERL_DBG_TARGET).elf: $(OBJS) $(ERL_DBG_OBJS) $(LCF) $(CP) $(ERL_OBJ_DIR)/beam.debug $(OBJDIR)/beam.debug.o $(CP) $(ERL_OBJ_DIR)/epmd $(OBJDIR)/epmd.o $(LD) $(LDFLAGS) -o $@ $(CRT) $(OBJS) $(ERL_DBG_OBJS) $(OBJDIR)/beam.debug.o \ $(OBJDIR)/epmd.o $(LIBDIRS) $(LIBS) > $(OBJDIR)/$(ERL_DBG_TARGET).map$(OBJDIR)/$(ERL_TARGET).elf: $(OBJS) $(ERL_OBJS) $(LCF) $(CP) $(BEAM_DIR)/beam $(OBJDIR)/beam.o $(CP) $(ERL_OBJ_DIR)/epmd $(OBJDIR)/epmd.o $(LD) $(LDFLAGS) -o $@ $(CRT) $(OBJS) $(ERL_OBJS) $(OBJDIR)/beam.o \ $(OBJDIR)/epmd.o $(LIBDIRS) $(LIBS) > $(OBJDIR)/$(ERL_TARGET).map$(LCF): $(ECHO) "Create" $@ "from" $(LCFSRC) $(CPPTOFILE) $(CPPFLAGS) $(LCFDEFINES) $(LCFSRC) -o $@lcf: $(LCF)erldbg: $(OBJDIR)/$(ERL_DBG_TARGET).elf $(INSERTCONF) lm_conf_file $(OBJDIR)/$(ERL_DBG_TARGET).elf# $(GZIP) $(OBJDIR)/$(ERL_DBG_TARGET).elf $(ECHO) "" $(ECHO) " LM BUILT: " $(OBJDIR)/$(ERL_DBG_TARGET).elf $(ECHO) ""erlopt: $(OBJDIR)/$(ERL_TARGET).elf $(INSERTCONF) lm_conf_file $(OBJDIR)/$(ERL_TARGET).elf# $(GZIP) $(OBJDIR)/$(ERL_TARGET).elf $(ECHO) "" $(ECHO) " LM BUILT: " $(OBJDIR)/$(ERL_TARGET).elf $(ECHO) ""############################################################################## CREATE AN ERLANG USER LIB FILE#############################################################################$(OBJDIR)/erl_user_pgm_reg.o: $(ERL_UTILS_SRC)/erl_user_pgm_reg.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(OBJDIR)/erl_user_dbg.o: $(ERL_UTILS_SRC)/erl_user_dbg.c $(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<$(USER_LIBDIR)/liberl_user.a: $(OBJDIR)/erl_user_pgm_reg.o $(OBJDIR)/erl_user_dbg.o $(RM) $@ $(AR) $@ $(OBJDIR)/erl_user_pgm_reg.o $(OBJDIR)/erl_user_dbg.o $(OBJDIR)/dbgprintf.oerllib: $(USER_LIBDIR)/liberl_user.a############################################################################## MAKE CLEAN############################################################################## This section deletes the $(OBJDIR) directory and all its files.clean: $(RMDIR) $(OBJDIR) $(MKDIR) $(OBJDIR)cleandbg: $(RM) $(OBJDIR)/$(ERL_DBG_TARGET).elf $(RM) $(LCF)cleanopt: $(RM) $(OBJDIR)/$(ERL_TARGET).elf $(RM) $(LCF)############################################################################## END OF MAKEFILE#############################################################################
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?