diff options
author | Bradley Sepos <[email protected]> | 2016-12-22 00:42:42 -0500 |
---|---|---|
committer | Bradley Sepos <[email protected]> | 2016-12-22 02:55:27 -0500 |
commit | 6ccbfa43e09d1c8c22c4a1c2749a5bf4b6e017e2 (patch) | |
tree | f4f8e4e2714ea1cdebcc0f72cad352445ab7960d | |
parent | a827c12dd0639f1f3e49a540c1a594affa0d0ac9 (diff) |
build: Add install, install-strip, and uninstall targets for Darwin/Mac.
Also refactor test.* convenience targets for Darwin/Mac.
Configure parameter --prefix now sets HandBrakeCLI install directory [/usr/local] like on other systems.
New configure parameter --xcode-prefix sets HandBrake.app install directory [/Applications]. Not used on other systems.
-rw-r--r-- | macosx/module.rules | 40 | ||||
-rw-r--r-- | macosx/module.xcodebuild | 19 | ||||
-rw-r--r-- | make/configure.py | 14 | ||||
-rw-r--r-- | test/module.rules | 45 |
4 files changed, 79 insertions, 39 deletions
diff --git a/macosx/module.rules b/macosx/module.rules index 7d4d368fc..20011c03d 100644 --- a/macosx/module.rules +++ b/macosx/module.rules @@ -1,8 +1,36 @@ $(eval $(call import.MODULE.rules,MACOSX)) +build: macosx.build +install: macosx.install +uninstall: macosx.uninstall +clean: macosx.clean +xclean: macosx.xclean + +######################################## +# sync with ../test/module.rules # +######################################## +test.install-strip: | $(dir $(TEST.install.exe)) + $(CP.exe) $(TEST.exe) $(TEST.install.exe) + $(STRIP.exe) $(TEST.install.exe) + +test.install: | $(dir $(TEST.install.exe)) + $(CP.exe) $(TEST.exe) $(TEST.install.exe) + +test.uninstall: + $(RM.exe) -f $(TEST.install.exe) + +test.clean: + $(RM.exe) -f $(TEST.out) + +test.xclean: test.clean +######################################## + macosx.build: $(MACOSX.m4.out) macosx.build: $(MACOSX.osl.filelist) +macosx.install: test.install +macosx.uninstall: test.uninstall + macosx.clean: $(RM.exe) -f $(MACOSX.m4.out) $(RM.exe) -f $(MACOSX.osl.filelist) @@ -11,13 +39,6 @@ macosx.xclean: $(RM.exe) -rf $(MACOSX.build/) $(RM.exe) -rf $(MACOSX.xroot/) -test.clean: - $(RM.exe) -f $(MACOSX.xroot/)HandBrakeCLI - $(RM.exe) -rf $(MACOSX.xroot/)HandBrakeCLI.dSYM - $(RM.exe) -rf $(MACOSX.xroot/)HandBrakeCLI.build - -test.xclean: test.clean - $(MACOSX.m4.out): $(BUILD/)project/handbrake.m4 $(MACOSX.m4.out): | $(dir $(MACOSX.m4.out)) $(MACOSX.m4.out): $(MACOSX.build/)%: $(MACOSX.src/)%.m4 @@ -28,8 +49,3 @@ $(MACOSX.osl.filelist): $(BUILD/)GNUmakefile @echo "creating $@" @> $@ $(foreach i,$(foreach m,$(MODULES.NAMES),$($m.OSL.files)),$(call fn.PRINTLN,@echo $i >> $@)) - -############################################################################### - -clean: macosx.clean -build: macosx.build diff --git a/macosx/module.xcodebuild b/macosx/module.xcodebuild index 26b34a9cb..bb62e80db 100644 --- a/macosx/module.xcodebuild +++ b/macosx/module.xcodebuild @@ -1,6 +1,6 @@ ## This file is processed only when shunting build through xcodebuild -.PHONY: macosx.build macosx.clean macosx.install +.PHONY: macosx.build macosx.clean macosx.install macosx.install-strip macosx.uninstall macosx.build: $(call MACOSX.XCODE,HandBrakeCLI HandBrake,build) @@ -9,11 +9,26 @@ macosx.clean: $(call MACOSX.XCODE,HandBrakeCLI HandBrake,clean) macosx.install: - $(call MACOSX.XCODE,HandBrakeCLI HandBrake,install) + $(RM.exe) -rf $(XCODE.prefix/)HandBrake.app + $(CP.exe) -R $(MACOSX.xroot/)HandBrake.app $(XCODE.prefix/) + $(CP.exe) $(MACOSX.xroot/)HandBrakeCLI $(PREFIX/)bin/ + +macosx.install-strip: + $(RM.exe) -rf $(XCODE.prefix/)HandBrake.app + $(CP.exe) -R $(MACOSX.xroot/)HandBrake.app $(XCODE.prefix/) + $(STRIP.exe) $(XCODE.prefix/)HandBrake.app/Contents/MacOS/HandBrake + $(CP.exe) $(MACOSX.xroot/)HandBrakeCLI $(PREFIX/)bin/ + $(STRIP.exe) $(PREFIX/)bin/HandBrakeCLI + +macosx.uninstall: + $(RM.exe) -rf $(XCODE.prefix/)HandBrake.app + $(RM.exe) -f $(PREFIX/)bin/HandBrakeCLI build: macosx.build clean: macosx.clean install: macosx.install +install-strip: macosx.install-strip +uninstall: macosx.uninstall xclean: clean ############################################################################### diff --git a/make/configure.py b/make/configure.py index cc758330c..36c782380 100644 --- a/make/configure.py +++ b/make/configure.py @@ -99,10 +99,14 @@ class Configure( object ): self.build_final = os.curdir self.src_final = self._final_dir( self.build_dir, self.src_dir ) self.prefix_final = self._final_dir( self.build_dir, self.prefix_dir ) + if host.match( '*-*-darwin*' ): + self.xcode_prefix_final = self._final_dir( self.build_dir, self.xcode_prefix_dir ) self.infof( 'compute: makevar SRC/ = %s\n', self.src_final ) self.infof( 'compute: makevar BUILD/ = %s\n', self.build_final ) self.infof( 'compute: makevar PREFIX/ = %s\n', self.prefix_final ) + if host.match( '*-*-darwin*' ): + self.infof( 'compute: makevar XCODE.prefix/ = %s\n', self.xcode_prefix_final ) ## perform chdir and enable log recording def chdir( self ): @@ -198,6 +202,8 @@ class Configure( object ): self.src_dir = os.path.normpath( options.src ) self.build_dir = os.path.normpath( options.build ) self.prefix_dir = os.path.normpath( options.prefix ) + if host.match( '*-*-darwin*' ): + self.xcode_prefix_dir = os.path.normpath( options.xcode_prefix ) if options.sysroot != None: self.sysroot_dir = os.path.normpath( options.sysroot ) else: @@ -1356,6 +1362,8 @@ def createCLI(): grp = OptionGroup( cli, 'Xcode Options' ) grp.add_option( '--disable-xcode', default=False, action='store_true', help='disable Xcode' ) + grp.add_option( '--xcode-prefix', default=cfg.xcode_prefix_dir, action='store', metavar='DIR', + help='specify install dir for Xcode products [%s]' % (cfg.xcode_prefix_dir) ) grp.add_option( '--xcode-symroot', default='xroot', action='store', metavar='DIR', help='specify root of the directory hierarchy that contains product files and intermediate build files' ) xcconfigMode.cli_add_option( grp, '--xcode-config' ) @@ -1493,7 +1501,9 @@ try: cfg = Configure( verbose ) host = HostTupleProbe(); host.run() - cfg.prefix_dir = ForHost( '/usr/local', ['/Applications','*-*-darwin*'] ).value + cfg.prefix_dir = '/usr/local' + if host.match( '*-*-darwin*' ): + cfg.xcode_prefix_dir = '/Applications' build = BuildAction() arch = ArchAction(); arch.run() @@ -1856,6 +1866,8 @@ int main() if not Tools.xcodebuild.fail and not options.disable_xcode: doc.addBlank() + doc.add( 'XCODE.prefix', cfg.xcode_prefix_final ) + doc.add( 'XCODE.prefix/', cfg.xcode_prefix_final + os.sep ) doc.add( 'XCODE.driver', options.xcode_driver ) if os.path.isabs(options.xcode_symroot): doc.add( 'XCODE.symroot', options.xcode_symroot ) diff --git a/test/module.rules b/test/module.rules index 5f41d4d2f..5dd638815 100644 --- a/test/module.rules +++ b/test/module.rules @@ -1,29 +1,17 @@ $(eval $(call import.MODULE.rules,TEST)) -test.build: $(TEST.exe) - -$(TEST.exe): | $(dir $(TEST.exe)) -$(TEST.exe): $(TEST.c.o) - $(call TEST.GCC.EXE++,$@,$^ $(TEST.libs)) - -$(TEST.c.o): $(LIBHB.a) -$(TEST.c.o): | $(dir $(TEST.c.o)) -$(TEST.c.o): $(BUILD/)%.o: $(SRC/)%.c - $(call TEST.GCC.C_O,$@,$<) - -test.clean: - $(RM.exe) -f $(TEST.out) - -############################################################################### - build: test.build +install: test.install +install-strip: test.install-strip +uninstall: test.uninstall clean: test.clean +xclean: test.xclean -############################################################################### - -## skip install/uninstall on darwin -ifneq ($(BUILD.system),darwin) +test.build: $(TEST.exe) +######################################## +# sync with ../macosx/module.rules # +######################################## test.install-strip: | $(dir $(TEST.install.exe)) $(CP.exe) $(TEST.exe) $(TEST.install.exe) $(STRIP.exe) $(TEST.install.exe) @@ -34,8 +22,17 @@ test.install: | $(dir $(TEST.install.exe)) test.uninstall: $(RM.exe) -f $(TEST.install.exe) -install-strip: test.install-strip -install: test.install -uninstall: test.uninstall +test.clean: + $(RM.exe) -f $(TEST.out) + +test.xclean: test.clean +######################################## -endif +$(TEST.exe): | $(dir $(TEST.exe)) +$(TEST.exe): $(TEST.c.o) + $(call TEST.GCC.EXE++,$@,$^ $(TEST.libs)) + +$(TEST.c.o): $(LIBHB.a) +$(TEST.c.o): | $(dir $(TEST.c.o)) +$(TEST.c.o): $(BUILD/)%.o: $(SRC/)%.c + $(call TEST.GCC.C_O,$@,$<) |