Makefile
上传用户:hjq518
上传日期:2021-12-09
资源大小:5084k
文件大小:3k
源码类别:

Audio

开发平台:

Visual C++

  1. ##############################################################################
  2. #
  3. # Makefile for x264 VFW driver
  4. #
  5. # Author: XviD project:
  6. #            - Milan Cutka <cutka at szm.sk>,
  7. #            - Edouard Gomez <ed.gomez at free.fr>
  8. #            - Peter Ross <pross@xvid.org>
  9. # Ported to x264 by Laurent Aimar <fenrir@via.ecp.fr>
  10. #
  11. # $Id: Makefile,v 1.1 2004/06/03 19:29:33 fenrir Exp $
  12. ##############################################################################
  13. include config.mak
  14. # Dll to build
  15. DLL=x264vfw.dll
  16. # Installer executable
  17. INST_EXE=x264vfw.exe
  18. # Current dir
  19. DIR_CUR=$(shell pwd)
  20. # Path to include filen library and src
  21. DIR_INC=$(DIR_CUR)/../../..
  22. DIR_LIB=$(DIR_CUR)/../../..
  23. DIR_SRC=$(DIR_CUR)/../..
  24. # Sources
  25. SRC_C= codec.c config.c driverproc.c
  26. SRC_RES= resource.rc
  27. # Alias
  28. RM= rm -rf
  29. WINDRES=windres
  30. ##############################################################################
  31. # CFLAGS
  32. ##############################################################################
  33. # Constants which should not be modified
  34. # The `mingw-runtime` package is required when building with -mno-cygwin
  35. CFLAGS += -I$(DIR_SRC)/w32api -I$(DIR_INC)
  36. CFLAGS += -D_WIN32_IE=0x0500
  37. CFLAGS += -mno-cygwin
  38. # Optional Compiler options
  39. CFLAGS += -Wall
  40. CFLAGS += -O3
  41. ##############################################################################
  42. # Compiler flags for linking stage
  43. ##############################################################################
  44. LDFLAGS += -L$(DIR_LIB) -lx264
  45. ##############################################################################
  46. # Rules
  47. ##############################################################################
  48. OBJECTS = $(SRC_C:.c=.obj)
  49. OBJECTS+= $(SRC_RES:.rc=.obj)
  50. .SUFFIXES: .obj .rc .c
  51. DIR_BUILD= $(DIR_CUR)/bin
  52. VPATH = $(DIR_SRC):$(DIR_BUILD)
  53. all: $(DLL)
  54. $(DIR_BUILD):
  55. @echo " D: $(DIR_BUILD)"
  56. @mkdir -p $(DIR_BUILD)
  57. .rc.obj:
  58. @echo " W: $(@D)/$(<F)"
  59. @mkdir -p $(DIR_BUILD)/$(@D)
  60. @$(WINDRES) 
  61. --include-dir=$(DIR_SRC) 
  62. --input-format=rc 
  63. --output-format=coff 
  64. -o $(DIR_BUILD)/$@ $<
  65. .c.obj:
  66. @echo " C: $(@D)/$(<F)"
  67. @mkdir -p $(DIR_BUILD)/$(@D)
  68. @$(CC) $(CFLAGS) -c -o $(DIR_BUILD)/$@ $<
  69. $(DLL): $(DIR_BUILD) $(OBJECTS)
  70. @echo " L: $(@F)"
  71. @cp $(DIR_SRC)/driverproc.def $(DIR_BUILD)/driverproc.def
  72. @cd $(DIR_BUILD) && 
  73. $(CC) 
  74. -mno-cygwin -shared -Wl,-dll,--out-implib,$@.a,--enable-stdcall-fixup 
  75. -o $@ 
  76. $(OBJECTS) driverproc.def 
  77. -lgdi32 -lwinmm -lcomdlg32 -lcomctl32 $(LDFLAGS)
  78. clean:
  79. @echo " Cl: Object files and target lib"
  80. @$(RM) $(DIR_BUILD)
  81. install:
  82. @echo " I: x264vfw.dll"
  83. @cp $(DIR_BUILD)/$(DLL) $(DLL)
  84. @cp $(DIR_SRC)/build/win32/bin/x264vfw.inf .
  85. @rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 $(DIR_CUR)/x264vfw.inf
  86. @rm $(DLL)
  87. @rm x264vfw.inf
  88. uninstall:
  89. @echo " U: x264vfw.dll"
  90. @cp $(DIR_SRC)/build/win32/bin/x264vfw.inf .
  91. @rundll32.exe setupapi,InstallHinfSection Remove_x264 132 $(DIR_CUR)/x264vfw.inf
  92. @rm x264vfw.inf
  93. ##############################################################################
  94. # Builds the NSIS installer script for Windows.
  95. # NSIS 2.x is required and makensis.exe should be in the path
  96. ##############################################################################
  97. build-installer: $(DLL)
  98. @cp $(DIR_BUILD)/$(DLL) $(DIR_SRC)/installer
  99. @makensis $(DIR_SRC)/installer/x264-conf.nsi
  100. @mv $(DIR_SRC)/installer/$(INST_EXE) $(DIR_BUILD)
  101. @rm $(DIR_SRC)/installer/$(DLL)