📄 makefile
字号:
########################################################################## Makefile for Microsoft's MPEG VM software encoder & decoder## Sven Brandau, 09/04/1998# Heinrich-Hertz Institute Berlin# # Tested: Solaris 5.5.1 / GNU g++ 2.7.2.2## Note: 1. Before you compile, convert all source files from# MS/DOS line feeds to Unix line feeds!# 2. make a directory obj for object files# 3. make (GNU make 3.74)########################################################################## Filename: makefile# Targets:# libmaimpeg4.so - MPEG-4 MAI component shared lib## Inputs (optional):# BUILD_MODE: release, debug, profile# BUILDSDIR: top level output directory (binaries)# INSTALLDIR: directory to copy final target# GCFLAGS: global compile flags (passed to all makefiles)## Copyright 2004 ADVANCED MICRO DEVICES, INC. All Rights Reserved.########### Module definitions ###########################################COMPNAME = maimpeg4dec# TOPDIR is the "main" top directoryTOPDIR =../../../..SRCDIR = ../..MAEDIR=$(TOPDIR)/maeMAIDIR=$(TOPDIR)/maiMAI_INC=$(MAIDIR)/incWRAPPER_DIR=$(MAEDIR)/mae-wrapperAVSYNC_DIR=$(MAEDIR)/avsync-driverDRIVER_DIR=$(MAEDIR)/mae-driver-2CMODEL_DIR=$(MAEDIR)/mae-cmodelifeq ("$(BUILDSDIR)", "")# Default, MAI Components all go to same top level builds directoryBUILDSDIR=.endif# ARCHNAME can be used for CPU specific build options (i.e. mips, i686, etc.)ARCHNAME?=$(strip $(shell uname -m))# TARGETSTARGETFILE1=lib$(COMPNAME).soTARGETFILE2=lib$(COMPNAME).a# If no configuration is specified, "Release" will be usedifeq ("$(BUILD_MODE)", "")BUILD_MODE = releaseendif# Handle "CFG" which is the variable passed by SlickEditifeq ("$(CFG)","Release")BUILD_MODE = releaseendififeq ("$(CFG)","Debug")BUILD_MODE = debugendif# Setup build directories and target file namesBUILDSSUBDIR=$(BUILDSDIR)/$(ARCHNAME)ifeq ("$(BUILD_MODE)", "debug")BUILDSSUBDIR=$(BUILDSDIR)/$(ARCHNAME)dbgendififeq ("$(BUILD_MODE)", "release")BUILDSSUBDIR=$(BUILDSDIR)/$(ARCHNAME)relendififeq ("$(BUILD_MODE)", "profile")BUILDSSUBDIR=$(BUILDSDIR)/$(ARCHNAME)profendif# TARGETINTDIR is the intermediate path (for object files) TARGETINTDIR1=$(BUILDSSUBDIR)/$(COMPNAME)# TARGETDIR1 is the final path for target executablesTARGETDIR1=$(BUILDSSUBDIR)/$(COMPNAME)TARGETDIR2=$(BUILDSSUBDIR)/$(COMPNAME)/static# TARGETPATH is full target filename with pathTARGETPATH1=$(TARGETDIR1)/$(TARGETFILE1)TARGETPATH2=$(TARGETDIR2)/$(TARGETFILE2)# Make command to use for dependenciesMAKE=makeCC=gccCXX=g++LD=ldAR=arCOMPILER=$(CC)LINKER=$(CXX)DEFINES=# Common compile/link attributesLDLIBS=-lc -lpthread -ldlLDFLAGS = -shared -Xlinker --no-undefinedCFLAGS=$(GCFLAGS)ifeq ("$(BUILD_MODE)", "debug")CFLAGS+=-gendififeq ("$(BUILD_MODE)", "release")DEFINES+=-DNO_ASSERTSCFLAGS+=-O3endif ifeq ($(ARCHNAME),mips)DEFINES+=-DMIPSCFLAGS+=-mips32 -mmadendif# Include all subdirectories for easeINC = \-I. \-I$(SRCDIR) \-I$(SRCDIR)/sys \-I$(SRCDIR)/sys/encoder \-I$(SRCDIR)/sys/decoder \-I$(SRCDIR)/sys \-I$(SRCDIR)/type \-I$(SRCDIR)/tools/entropy \-I$(SRCDIR)/tools \-I$(SRCDIR)/vtc/include \-I$(SRCDIR)/vtc/ztq \-I$(SRCDIR)/vtc/zte \-I$(SRCDIR)/vtc/wavelet \-I$(SRCDIR)/vtc/pezw \-I$(SRCDIR)/vtc/shape \-I$(SRCDIR)/MAE \-I$(SRCDIR)/MAI \-I$(MAI_INC) \-I$(WRAPPER_DIR) \-I$(CMODEL_DIR)/mae/env \-I$(CMODEL_DIR)/env \-I$(DRIVER_DIR)########## General definitions ##########################################OS = Linux#CCC = $(CXX)CCC = $(CC)#DEFINES = -D__DOUBLE_PRECISION_ -D__TRACE_AND_STATS_ -DFULL_SEARCH -D_OBSS_SAIT_990904_ -D_SONY_SS_DEFINES += \-DOS_$(OS) \-DREF_MPEG4 \-DDRV_ENABLED \-DMAE_HW \-DUSE_MAI \-DUSE_AVSYNC \-DINLINE_MV_CLIPPING \-DFAST_LUT_DECODE \-DENABLE_MULTIPLE_VOL_SUPPORT \-DNEW_MAE_DRIVERCFLAGS += $(INC) $(DEFINES) CPPFLAGS = $(CFLAGS) -fpermissive -Wno-deprecatedCCFLAGS = $(CFLAGS)LN = ln -sMV = mvCP = cpRM = rm -fLIBS = -lm -lc### macro to make a object fileMK_OBJ_CC = $(CCC) $(CCFLAGS) -cMK_OBJ_CPP = $(CCC) $(CPPFLAGS) -c ### Objects ###DECODER_OBJECTS = \ $(TARGETINTDIR1)/bitstrm.o \ $(TARGETINTDIR1)/huffman.o \ $(TARGETINTDIR1)/blkdec.o \ $(TARGETINTDIR1)/mbheaddec.o \ $(TARGETINTDIR1)/mv.o \ $(TARGETINTDIR1)/mvdec.o \ $(TARGETINTDIR1)/vopmbdec.o \ $(TARGETINTDIR1)/vopsedec.o \ $(TARGETINTDIR1)/vopses.o \ $(TARGETINTDIR1)/gmc_motion.o \ \ $(TARGETINTDIR1)/mae_pass_thru.o \ $(TARGETINTDIR1)/driverif.o \ $(TARGETINTDIR1)/mae_interface.o \ $(TARGETINTDIR1)/clear_copy.o \ $(TARGETINTDIR1)/maimpeg4dec.o \ \ $(TARGETINTDIR1)/mai_osal.o \ $(TARGETINTDIR1)/mai_compbase.o \ $(TARGETINTDIR1)/mai_component.o .KEEP_STATE:########## Targets #########################################all: target install# Build target onlytarget: $(TARGETPATH1) $(TARGETPATH2)# Install target in new location if specifiedifeq ("$(INSTALLDIR)", "")install:elseinstall: @echo Installing $(COMPNAME) to $(INSTALLDIR)... @mkdir -p $(INSTALLDIR)/static @cp $(TARGETPATH1) $(INSTALLDIR) @cp $(TARGETPATH2) $(INSTALLDIR)/staticendifvm_dec_drv-mips: $(TARGETINTDIR1) $(DECODER_OBJECTS) $(CCC) $(CFLAGS) -o vm_dec_drv-mips $(DECODER_OBJECTS) $(LIBS) @echo Done making vm_dec_drv-mips$(TARGETPATH2): $(TARGETINTDIR1) $(DECODER_OBJECTS) mkdir -p "$(TARGETDIR2)" $(AR) rcs "$(TARGETPATH2)" $(DECODER_OBJECTS)$(TARGETPATH1): $(TARGETINTDIR1) $(DECODER_OBJECTS) mkdir -p "$(TARGETDIR1)" $(LINKER) $(LDFLAGS) -o "$(TARGETPATH1)" $(DECODER_OBJECTS) $(LDLIBS) @echo Done making "$(TARGETPATH1)"$(TARGETINTDIR1): mkdir -p "$(TARGETINTDIR1)"# Rebuild this projectrebuild: cleanall all# Clean this projectclean: @$(RM) $(TARGETPATH1) @$(RM) $(DECODER_OBJECTS) # Clean this project and all dependenciescleanall: clean$(TARGETINTDIR1)/%.o: $(SRCDIR)/sys/decoder/%.c $(MK_OBJ_CC) -o $@ $<$(TARGETINTDIR1)/%.o: $(SRCDIR)/sys/%.c $(MK_OBJ_CC) -o $@ $<$(TARGETINTDIR1)/%.o: $(SRCDIR)/tools/entropy/%.c $(MK_OBJ_CC) -o $@ $<$(TARGETINTDIR1)/%.o: $(SRCDIR)/MAE/%.c $(MK_OBJ_CC) -o $@ $<$(TARGETINTDIR1)/%.o: $(WRAPPER_DIR)/%.c $(MK_OBJ_CC) -o $@ $<$(TARGETINTDIR1)/%.o: ../%.c $(MK_OBJ_CC) -o $@ $<$(TARGETINTDIR1)/%.o: $(MAIDIR)/src/%.c $(MK_OBJ_CC) -o $@ $<$(TARGETINTDIR1)/%.o: $(MAIDIR)/%.c $(MK_OBJ_CC) -o $@ $<$(TARGETINTDIR1)/%.o: $(SRCDIR)/MAE/%.S $(MK_OBJ_CC) -o $@ $<
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -