📄 makefile
字号:
# <LIC_AMD_STD># Copyright (c) 2005 Advanced Micro Devices, Inc.# # This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.# # This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.# # You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA# # The full GNU General Public License is included in this distribution in the# file called COPYING# </LIC_AMD_STD> # <CTL_AMD_STD># </CTL_AMD_STD> # <DOC_AMD_STD># Filename: Makefile# Targets:# libmaimpeg2dec.so - WMV Video Decoder 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)# </DOC_AMD_STD> COMPNAME=maimpeg2dec# TOPDIR is the "main" top directoryTOPDIR=../../../..MAIDIR=$(TOPDIR)/maiMAI_INC=$(MAIDIR)/incMAEDIR=$(TOPDIR)/maeifeq ("$(BUILDSDIR)", "")# Default, library build under local 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, "Debug" will be usedifeq ("$(BUILD_MODE)", "")BUILD_MODE = releaseendif# always force release build of MPEG2 libBUILD_MODE = release# 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)# commands usedMAKE=makeCC=gccCXX=g++LD=ldAR=arCOMPILER=$(CC)LINKER=$(CC)# Common compile/link attributesLDLIBS=-lc -lpthread -ldlLDFLAGS = -shared -Xlinker --no-undefinedCFLAGS=$(GCFLAGS)DEFINES = -DLINUX -DOS_Linux -D_USRDLL -DUSE_MAIDEFINES += -DHAVE_CONFIG_H -DREF_MPEG2 -DDRV_ENABLED -DMAE_HW -DNEW_MAE_DRIVER -DUSE_MAI_RENDERERSRCDIR=../..INCLUDES=-I$(SRCDIR)/libmpeg2/ -I.. -I$(SRCDIR)/libmpeg2/Linux \ -I$(MAI_INC) \ -I$(MAEDIR)/mae-wrapper/ \ -I$(SRCDIR)/MAE \ -I$(SRCDIR)/include/ \ -I$(MAEDIR)/mae-driver-2/ \ -I$(MAEDIR)/mae-cmodel/mae/env \ -I$(MAEDIR)/mae-cmodel/env ifeq "$(BUILD_MODE)" "debug"CFLAGS+=-gendififeq ($(ARCHNAME),mips)DEFINES+=-DMIPSCFLAGS+=-mips32 -mmad -O3elseDEFINES+=-DUSE_X11_DISPLAYendifOBJ = $(TARGETINTDIR1)/alloc.o \ $(TARGETINTDIR1)/decode.o \ $(TARGETINTDIR1)/header.o \ $(TARGETINTDIR1)/motion_functions.o \ $(TARGETINTDIR1)/slice.o \ $(TARGETINTDIR1)/sliceMAE.o \ $(TARGETINTDIR1)/driverif.o \ $(TARGETINTDIR1)/mae_interface.o \ $(TARGETINTDIR1)/mai_osal.o \ $(TARGETINTDIR1)/mai_component.o \ $(TARGETINTDIR1)/mai_compbase.o \ $(TARGETINTDIR1)/maimpeg2dec.oifeq ($(ARCHNAME),mips)OBJ+=$(TARGETINTDIR1)/slice_asm.oendifCOMPILE=$(COMPILER) -c $(CFLAGS) $(DEFINES) -o "$(TARGETINTDIR1)/$(*F).o" $(INCLUDES) "$<"# Pattern rules$(TARGETINTDIR1)/%.o : ../%.c $(COMPILE)$(TARGETINTDIR1)/%.o : $(SRCDIR)/libmpeg2/%.c $(COMPILE)$(TARGETINTDIR1)/%.o : $(SRCDIR)/libmpeg2/%.S $(COMPILE)$(TARGETINTDIR1)/%.o : $(SRCDIR)/MAE/%.c $(COMPILE)$(TARGETINTDIR1)/%.o : $(SRCDIR)/MAE/%.cpp $(COMPILE)$(TARGETINTDIR1)/%.o : $(MAIDIR)/%.c $(COMPILE)$(TARGETINTDIR1)/%.o : $(MAIDIR)/src/%.c $(COMPILE)$(TARGETINTDIR1)/%.o : $(MAEDIR)/mae-wrapper/%.c $(COMPILE)$(TARGETINTDIR1)/%.o : $(MAEDIR)/mae-wrapper/%.cpp $(COMPILE)# Build rulesall: 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)/staticendif$(TARGETPATH1): $(TARGETINTDIR1) $(OBJ) mkdir -p "$(TARGETDIR1)" $(LINKER) $(LDFLAGS) -o "$(TARGETPATH1)" $(OBJ) $(LDLIBS)$(TARGETPATH2): $(TARGETINTDIR1) $(OBJ) mkdir -p "$(TARGETDIR2)" $(AR) rcs "$(TARGETPATH2)" $(OBJ)$(TARGETINTDIR1): mkdir -p "$(TARGETINTDIR1)"# Rebuild this projectrebuild: cleanall all# Clean this projectclean: rm -f $(TARGETPATH1) rm -f $(OBJ)# Clean this project and all dependenciescleanall: clean
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -