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 + -
显示快捷键?