From ff07f4f0754e2cccc0def7ebaa01dfae46f6af34 Mon Sep 17 00:00:00 2001 From: tzim Date: Thu, 8 May 2014 09:06:05 +0000 Subject: [PATCH] Ajout makefiles --- DMX-2.0/Makefile | 196 +++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 71 +++++++++++++++++ Makefile.include | 119 ++++++++++++++++++++++++++++ configure | 159 ++++++++++++++++++++++++++++++++++++++ rules.make | 42 ++++++++++ 5 files changed, 587 insertions(+) create mode 100644 DMX-2.0/Makefile create mode 100644 Makefile create mode 100644 Makefile.include create mode 100755 configure create mode 100644 rules.make diff --git a/DMX-2.0/Makefile b/DMX-2.0/Makefile new file mode 100644 index 0000000..6ba504e --- /dev/null +++ b/DMX-2.0/Makefile @@ -0,0 +1,196 @@ + +EXTRA_DIST = Makefile + +# Warning: This is an automatically generated file, do not edit! + +srcdir=. +top_srcdir=.. + +include $(top_srcdir)/config.make + +ifeq ($(CONFIG),DEBUG_X86) +ASSEMBLY_COMPILER_COMMAND = dmcs +ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- -debug "-define:DEBUG;" +ASSEMBLY = bin/Debug/DMX-2.0.exe +ASSEMBLY_MDB = $(ASSEMBLY).mdb +COMPILE_TARGET = winexe +PROJECT_REFERENCES = +BUILD_DIR = bin/Debug + +DMX_2_0_EXE_MDB_SOURCE=bin/Debug/DMX-2.0.exe.mdb +DMX_2_0_EXE_MDB=$(BUILD_DIR)/DMX-2.0.exe.mdb +STYLE_GTKRC_SOURCE=style.gtkrc + +endif + +ifeq ($(CONFIG),RELEASE_X86) +ASSEMBLY_COMPILER_COMMAND = dmcs +ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize+ +ASSEMBLY = bin/Release/DMX-2.0.exe +ASSEMBLY_MDB = +COMPILE_TARGET = winexe +PROJECT_REFERENCES = +BUILD_DIR = bin/Release + +DMX_2_0_EXE_MDB= +STYLE_GTKRC_SOURCE=style.gtkrc + +endif + +AL=al +SATELLITE_ASSEMBLY_NAME=$(notdir $(basename $(ASSEMBLY))).resources.dll + +PROGRAMFILES = \ + $(DMX_2_0_EXE_MDB) \ + $(STYLE_GTKRC) + + +RESGEN=resgen2 + +STYLE_GTKRC = $(BUILD_DIR)/style.gtkrc + +FILES = \ + gtk-gui/generated.cs \ + MainWindow.cs \ + Main.cs \ + AssemblyInfo.cs \ + gtk-gui/DMX2.MainWindow.cs \ + UniversDMX.cs \ + Sequenceur.cs \ + SequenceurLineaire.cs \ + GestionCircuits.cs \ + gtk-gui/DMX2.GestionCircuits.cs \ + SequenceurUI.cs \ + SeqLinUI.cs \ + gtk-gui/DMX2.SeqLinUI.cs \ + SelSeqCircuits.cs \ + gtk-gui/DMX2.SelSeqCircuits.cs \ + EditionUnivers.cs \ + gtk-gui/DMX2.EditionUnivers.cs \ + DriverDMX.cs \ + DriverBoitierV1.cs \ + SequenceurMaitre.cs \ + ErreurLectureFichier.cs \ + SequenceurMacro.cs \ + SeqMacroUI.cs \ + gtk-gui/DMX2.SeqMacroUI.cs \ + Info.cs \ + EventManager.cs \ + MidiEventProvider.cs \ + MidiEventProvider.PInvoke.cs \ + HelperFunctions.cs \ + GestionDriversUI.cs \ + gtk-gui/DMX2.GestionDriversUI.cs \ + DriverBoitierV1UI.cs \ + gtk-gui/DMX2.DriverBoitierV1UI.cs \ + DriverBoitierV2.cs \ + DriverBoitierV2UI.cs \ + gtk-gui/DMX2.DriverBoitierV2UI.cs \ + WebServer.cs \ + Conduite.cs \ + About.cs \ + gtk-gui/DMX2.About.cs \ + DriverBoitierV3.cs \ + DriverBoitierV3UI.cs \ + gtk-gui/DMX2.DriverBoitierV3UI.cs + +DATA_FILES = + +RESOURCES = \ + gtk-gui/gui.stetic \ + icons/ictir/16.png,DMX2.icons.ictir.16.png \ + icons/ictir/22.png,DMX2.icons.ictir.22.png \ + icons/ictir/24.png,DMX2.icons.ictir.24.png \ + icons/ictir/32.png,DMX2.icons.ictir.32.png \ + icons/ictir/48.png,DMX2.icons.ictir.48.png \ + icons/docListe/16.png,DMX2.icons.docListe.16.png \ + icons/docListe/22.png,DMX2.icons.docListe.22.png \ + icons/docListe/24.png,DMX2.icons.docListe.24.png \ + icons/docListe/32.png,DMX2.icons.docListe.32.png \ + icons/docListe/48.png,DMX2.icons.docListe.48.png \ + style.gtkrc \ + html/page.html \ + html/js/jquery-ui.js,js.jquery-ui.js \ + html/css/theme/jquery-ui.css,css.theme.jquery-ui.css \ + html/css/theme/images/ui-bg_glass_100_f6f6f6_1x400.png,css.theme.images.ui-bg_glass_100_f6f6f6_1x400.png \ + html/css/theme/images/ui-bg_flat_10_000000_40x100.png,css.theme.images.ui-bg_flat_10_000000_40x100.png \ + html/js/jquery-1.9.1.js,js.jquery-1.9.1.js \ + html/css/theme/images/ui-bg_diagonals-thick_18_b81900_40x40.png,css.theme.images.ui-bg_diagonals-thick_18_b81900_40x40.png \ + html/css/theme/images/ui-bg_diagonals-thick_20_666666_40x40.png,css.theme.images.ui-bg_diagonals-thick_20_666666_40x40.png \ + html/css/theme/images/ui-bg_highlight-soft_100_eeeeee_1x100.png,css.theme.images.ui-bg_highlight-soft_100_eeeeee_1x100.png \ + html/css/theme/images/ui-bg_glass_100_fdf5ce_1x400.png,css.theme.images.ui-bg_glass_100_fdf5ce_1x400.png \ + html/css/theme/images/ui-bg_glass_65_ffffff_1x400.png,css.theme.images.ui-bg_glass_65_ffffff_1x400.png + +EXTRAS = \ + html \ + html/js/jquery-ui-1.10.3.custom.js \ + html/css/theme/images/animated-overlay.gif \ + html/css/theme/images/ui-bg_gloss-wave_35_f6a828_500x100.png \ + html/css/theme/images/ui-bg_highlight-soft_75_ffe45c_1x100.png \ + html/css/theme/images/ui-icons_228ef1_256x240.png \ + html/css/theme/images/ui-icons_222222_256x240.png \ + html/css/theme/images/ui-icons_ef8c08_256x240.png \ + html/css/theme/images/ui-icons_ffd27a_256x240.png \ + html/css/theme/images/ui-icons_ffffff_256x240.png + +REFERENCES = \ + System \ + -pkg:gtk-sharp-2.0 \ + -pkg:glib-sharp-2.0 \ + System.Xml \ + System.Core \ + System.Web + +DLL_REFERENCES = + +CLEANFILES = $(PROGRAMFILES) + +#Targets +all: $(ASSEMBLY) $(PROGRAMFILES) $(top_srcdir)/config.make + +include $(top_srcdir)/Makefile.include +#include $(srcdir)/custom-hooks.make + + + +$(eval $(call emit-deploy-target,STYLE_GTKRC)) + + +$(eval $(call emit_resgen_targets)) +$(build_xamlg_list): %.xaml.g.cs: %.xaml + xamlg '$<' + + +$(ASSEMBLY_MDB): $(ASSEMBLY) +$(ASSEMBLY): $(build_sources) $(build_resources) $(build_datafiles) $(DLL_REFERENCES) $(PROJECT_REFERENCES) $(build_xamlg_list) $(build_satellite_assembly_list) + make pre-all-local-hook prefix=$(prefix) + mkdir -p $(shell dirname $(ASSEMBLY)) + make $(CONFIG)_BeforeBuild + $(ASSEMBLY_COMPILER_COMMAND) $(ASSEMBLY_COMPILER_FLAGS) -out:$(ASSEMBLY) -target:$(COMPILE_TARGET) $(build_sources_embed) $(build_resources_embed) $(build_references_ref) + make $(CONFIG)_AfterBuild + make post-all-local-hook prefix=$(prefix) + +install-local: $(ASSEMBLY) $(ASSEMBLY_MDB) + make pre-install-local-hook prefix=$(prefix) + make install-satellite-assemblies prefix=$(prefix) + mkdir -p '$(DESTDIR)$(libdir)/$(PACKAGE)' + $(call cp,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(DMX_2_0_EXE_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call cp,$(STYLE_GTKRC),$(DESTDIR)$(libdir)/$(PACKAGE)) + make post-install-local-hook prefix=$(prefix) + +uninstall-local: $(ASSEMBLY) $(ASSEMBLY_MDB) + make pre-uninstall-local-hook prefix=$(prefix) + make uninstall-satellite-assemblies prefix=$(prefix) + $(call rm,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(ASSEMBLY_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(DMX_2_0_EXE_MDB),$(DESTDIR)$(libdir)/$(PACKAGE)) + $(call rm,$(STYLE_GTKRC),$(DESTDIR)$(libdir)/$(PACKAGE)) + make post-uninstall-local-hook prefix=$(prefix) + +install: install-local +uninstall: uninstall-local +clean: clean-local + +include $(top_srcdir)/rules.make diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3a89d9c --- /dev/null +++ b/Makefile @@ -0,0 +1,71 @@ + +EXTRA_DIST = rules.make configure Makefile.include + +all: all-recursive + +top_srcdir=. +include $(top_srcdir)/config.make +include $(top_srcdir)/Makefile.include +include $(top_srcdir)/rules.make + +#include $(top_srcdir)/custom-hooks.make + +#Warning: This is an automatically generated file, do not edit! +ifeq ($(CONFIG),DEBUG_X86) + SUBDIRS = DMX-2.0 +endif +ifeq ($(CONFIG),RELEASE_X86) + SUBDIRS = DMX-2.0 +endif + + +CONFIG_MAKE=$(top_srcdir)/config.make + +%-recursive: $(CONFIG_MAKE) + @set . $$MAKEFLAGS; final_exit=:; \ + case $$2 in --unix) shift ;; esac; \ + case $$2 in *=*) dk="exit 1" ;; *k*) dk=: ;; *) dk="exit 1" ;; esac; \ + make pre-$*-hook prefix=$(prefix) ; \ + for dir in $(call quote_each,$(SUBDIRS)); do \ + case "$$dir" in \ + .) make $*-local || { final_exit="exit 1"; $$dk; };;\ + *) (cd "$$dir" && make $*) || { final_exit="exit 1"; $$dk; };;\ + esac \ + done; \ + make post-$*-hook prefix=$(prefix) ; \ + $$final_exit + +$(CONFIG_MAKE): + echo "You must run configure first" + exit 1 + +clean: clean-recursive +install: install-recursive +uninstall: uninstall-recursive + +dist: $(CONFIG_MAKE) + rm -rf $(PACKAGE)-$(VERSION) + mkdir $(PACKAGE)-$(VERSION) + make pre-dist-hook distdir=$$distdir + for dir in $(call quote_each,$(SUBDIRS)); do \ + pkgdir=`pwd`/$(PACKAGE)-$(VERSION); \ + mkdir "$$pkgdir/$$dir" || true; \ + case $$dir in \ + .) make dist-local "distdir=$$pkgdir" || exit 1;; \ + *) (cd "$$dir"; make dist-local "distdir=$$pkgdir/$$dir") || exit 1;; \ + esac \ + done + (make dist-local distdir=$(PACKAGE)-$(VERSION)) + make post-dist-hook "distsir=$$distdir" + tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION) + rm -rf $(PACKAGE)-$(VERSION) + @echo "==========================================" + @echo "$(PACKAGE)-$(VERSION) has been packaged > $(PACKAGE)-$(VERSION).tar.gz" + @echo "==========================================" + +distcheck: dist + (mkdir test; cd test; \ + tar xzvf ../$(PACKAGE)-$(VERSION).tar.gz; cd $(PACKAGE)-$(VERSION); \ + ./configure --prefix=$$(cd `pwd`/..; pwd); \ + make && make install && make dist); + rm -rf test diff --git a/Makefile.include b/Makefile.include new file mode 100644 index 0000000..4d3c13d --- /dev/null +++ b/Makefile.include @@ -0,0 +1,119 @@ +VALID_CULTURES = ar bg ca zh-CHS cs da de el en es fi fr he hu is it ja ko nl no pl pt ro ru hr sk sq sv th tr id uk be sl et lv lt fa vi hy eu mk af ka fo hi sw gu ta te kn mr gl kok ar-SA bg-BG ca-ES zh-TW cs-CZ da-DK de-DE el-GR en-US fi-FI fr-FR he-IL hu-HU is-IS it-IT ja-JP ko-KR nl-NL nb-NO pl-PL pt-BR ro-RO ru-RU hr-HR sk-SK sq-AL sv-SE th-TH tr-TR id-ID uk-UA be-BY sl-SI et-EE lv-LV lt-LT fa-IR vi-VN hy-AM eu-ES mk-MK af-ZA ka-GE fo-FO hi-IN sw-KE gu-IN ta-IN te-IN kn-IN mr-IN gl-ES kok-IN ar-IQ zh-CN de-CH en-GB es-MX fr-BE it-CH nl-BE nn-NO pt-PT sv-FI ar-EG zh-HK de-AT en-AU es-ES fr-CA ar-LY zh-SG de-LU en-CA es-GT fr-CH ar-DZ zh-MO en-NZ es-CR fr-LU ar-MA en-IE es-PA ar-TN en-ZA es-DO ar-OM es-VE ar-YE es-CO ar-SY es-PE ar-JO en-TT es-AR ar-LB en-ZW es-EC ar-KW en-PH es-CL ar-AE es-UY ar-BH es-PY ar-QA es-BO es-SV es-HN es-NI es-PR zh-CHT + +s2q=$(subst \ ,?,$1) +q2s=$(subst ?,\ ,$1) +# use this when result will be quoted +unesc2=$(subst ?, ,$1) + +build_sources = $(FILES) $(GENERATED_FILES) +build_sources_esc= $(call s2q,$(build_sources)) +# use unesc2, as build_sources_embed is quoted +build_sources_embed= $(call unesc2,$(build_sources_esc:%='$(srcdir)/%')) + +comma__=, +get_resource_name = $(firstword $(subst $(comma__), ,$1)) +get_culture = $(lastword $(subst ., ,$(basename $1))) +is_cultured_resource = $(and $(word 3,$(subst ., ,$1)), $(filter $(VALID_CULTURES),$(lastword $(subst ., ,$(basename $1))))) + +RESOURCES_ESC=$(call s2q,$(RESOURCES)) + +build_resx_list = $(foreach res, $(RESOURCES_ESC), $(if $(filter %.resx, $(call get_resource_name,$(res))),$(res),)) +build_non_culture_resx_list = $(foreach res, $(build_resx_list),$(if $(call is_cultured_resource,$(call get_resource_name,$(res))),,$(res))) +build_non_culture_others_list = $(foreach res, $(filter-out $(build_resx_list),$(RESOURCES_ESC)),$(if $(call is_cultured_resource,$(call get_resource_name,$(res))),,$(res))) +build_others_list = $(build_non_culture_others_list) +build_xamlg_list = $(filter %.xaml.g.cs, $(FILES)) + +# resgen all .resx resources +build_resx_files = $(foreach res, $(build_resx_list), $(call get_resource_name,$(res))) +build_resx_resources_esc = $(build_resx_files:.resx=.resources) +build_resx_resources = $(call q2s,$(build_resx_resources_esc)) + +# embed resources for the main assembly +build_resx_resources_hack = $(subst .resx,.resources, $(build_non_culture_resx_list)) +# use unesc2, as build_resx_resources_embed is quoted +build_resx_resources_embed = $(call unesc2,$(build_resx_resources_hack:%='-resource:%')) +build_others_files = $(call q2s,$(foreach res, $(build_others_list),$(call get_resource_name,$(res)))) +build_others_resources = $(build_others_files) +# use unesc2, as build_others_resources_embed is quoted +build_others_resources_embed = $(call unesc2,$(build_others_list:%='-resource:$(srcdir)/%')) + +build_resources = $(build_resx_resources) $(build_others_resources) +build_resources_embed = $(build_resx_resources_embed) $(build_others_resources_embed) + +# -usesourcepath is available only for resgen2 +emit_resgen_target_1=$(call q2s,$1) : $(call q2s,$(subst .resources,.resx,$1)); cd '$$(shell dirname '$$<')' && MONO_IOMAP=drive $$(RESGEN) '$$(shell basename '$$<')' '$$(shell basename '$$@')' +emit_resgen_target_2=$(call q2s,$1) : $(call q2s,$(subst .resources,.resx,$1)); MONO_IOMAP=drive $$(RESGEN) -usesourcepath '$$<' '$$@' + +emit_resgen_target=$(if $(filter resgen2,$(RESGEN)),$(emit_resgen_target_2),$(emit_resgen_target_1)) +emit_resgen_targets=$(foreach res,$(build_resx_resources_esc),$(eval $(call emit_resgen_target,$(res)))) + +build_references_ref = $(call q2s,$(foreach ref, $(call s2q,$(REFERENCES)), $(if $(filter -pkg:%, $(ref)), $(ref), $(if $(filter -r:%, $(ref)), $(ref), -r:$(ref))))) +build_references_ref += $(call q2s,$(foreach ref, $(call s2q,$(DLL_REFERENCES)), -r:$(ref))) +build_references_ref += $(call q2s,$(foreach ref, $(call s2q,$(PROJECT_REFERENCES)), -r:$(ref))) + +s2q2s=$(call unesc2,$(call s2q,$1)) +cp_actual=test -z $1 || cp $1 $2 +cp=$(call cp_actual,'$(call s2q2s,$1)','$(call s2q2s,$2)') + +rm_actual=test -z '$1' || rm -f '$2' +rm=$(call rm_actual,$(call s2q2s,$1),$(call s2q2s,$2)/$(shell basename '$(call s2q2s,$1)')) + +EXTRA_DIST += $(build_sources) $(build_resx_files) $(build_others_files) $(ASSEMBLY_WRAPPER_IN) $(EXTRAS) $(DATA_FILES) $(build_culture_res_files) +CLEANFILES += $(ASSEMBLY) $(ASSEMBLY).mdb $(BINARIES) $(build_resx_resources) $(build_satellite_assembly_list) +DISTCLEANFILES = $(GENERATED_FILES) $(pc_files) $(BUILD_DIR)/* + +programfilesdir = $(pkglibdir) +programfiles_DATA = $(ASSEMBLY) +bin_SCRIPTS = $(BINARIES) + +programfilesdir = @libdir@/@PACKAGE@ +programfiles_DATA = $(PROGRAMFILES) + + +# macros + +# $(call emit-deploy-target,deploy-variable-name) +define emit-deploy-target +$($1): $($1_SOURCE) + mkdir -p '$$(shell dirname '$$@')' + cp '$$<' '$$@' +endef + +# $(call emit-deploy-wrapper,wrapper-variable-name,wrapper-sourcefile,x) +# assumes that for a wrapper foo.pc its source template is foo.pc.in +# if $3 is non-empty then wrapper is marked exec +define emit-deploy-wrapper +$($1): $2 $(top_srcdir)/config.make + mkdir -p '$$(shell dirname '$$@')' + cp '$$<' '$$@' + $(if $3,chmod +x '$$@') + +$2: $2.in $(top_srcdir)/config.make + sed -e "s,@prefix@,$(prefix)," -e "s,@PACKAGE@,$(PACKAGE)," -e "s,@expanded_libdir@,$(libdir)," -e "s,@expanded_bindir@,$(bindir)," -e "s,@expanded_datadir@,$(datadir)," < $2.in > $2 +endef + +# generating satellite assemblies + +culture_resources = $(foreach res, $(RESOURCES_ESC), $(if $(call is_cultured_resource,$(call get_resource_name, $(res))),$(res))) +cultures = $(sort $(foreach res, $(culture_resources), $(call get_culture,$(call get_resource_name,$(res))))) +culture_resource_dependencies = $(call q2s,$(BUILD_DIR)/$1/$(SATELLITE_ASSEMBLY_NAME): $(subst .resx,.resources,$2)) +culture_resource_commandlines = $(call unesc2,cmd_line_satellite_$1 += '/embed:$(subst .resx,.resources,$2)') +build_satellite_assembly_list = $(call q2s,$(cultures:%=$(BUILD_DIR)/%/$(SATELLITE_ASSEMBLY_NAME))) +build_culture_res_files = $(call q2s,$(foreach res, $(culture_resources),$(call get_resource_name,$(res)))) +install_satellite_assembly_list = $(subst $(BUILD_DIR),$(DESTDIR)$(libdir)/$(PACKAGE),$(build_satellite_assembly_list)) + +$(eval $(foreach res, $(culture_resources), $(eval $(call culture_resource_dependencies,$(call get_culture,$(call get_resource_name,$(res))),$(call get_resource_name,$(res)))))) +$(eval $(foreach res, $(culture_resources), $(eval $(call culture_resource_commandlines,$(call get_culture,$(call get_resource_name,$(res))),$(res))))) + +$(build_satellite_assembly_list): $(BUILD_DIR)/%/$(SATELLITE_ASSEMBLY_NAME): + mkdir -p '$(@D)' + $(AL) -out:'$@' -culture:$* -t:lib $(cmd_line_satellite_$*) + +$(install_satellite_assembly_list): + mkdir -p '$(@D)' + cp $(subst $(DESTDIR)$(libdir)/$(PACKAGE), $(BUILD_DIR), $@) $@ + +install-satellite-assemblies: $(install_satellite_assembly_list) + +uninstall-satellite-assemblies: + rm -rf $(install_satellite_assembly_list) \ No newline at end of file diff --git a/configure b/configure new file mode 100755 index 0000000..57cf53c --- /dev/null +++ b/configure @@ -0,0 +1,159 @@ +#!/usr/bin/env bash +VERSION=2.0 +PACKAGE=dmx-2.0 +prefix=/usr/local +config=RELEASE_X86 +configurations=" DEBUG_X86 RELEASE_X86" +common_packages=" glib-sharp-2.0;2.12.10 gtk-sharp-2.0;2.12.10" + + +usage () +{ + echo "Usage : configure [OPTION]... [--config=CONFIG]" + echo + echo "Options:" + echo " --prefix=PREFIX install architecture-independent files in PREFIX" + echo " [/usr/local]" + echo " --bindir=DIR user executables [PREFIX/bin]" + echo " --datadir=DIR read-only architecture-independent data [PREFIX/share]" + echo " --libdir=DIR object code libraries [PREFIX/lib]" + echo + echo "Configurations available :" + for c in $configurations; do + if [ "$c" = "$config" ]; then + echo " $c (Default)" + else + echo " $c" + fi + done +} + +validate_config () +{ + test -z "$1" && return 0 + for c in $configurations; do + if [ "$c" = "$1" ]; then + return 1 + fi + done + return 0 +} + +check_package () +{ + name=`echo $1 | cut -d\; -f1` + version=`echo $1 | cut -d\; -f2` + + echo -n "Checking for package '$name'.." | tee -a config.log + pkg-config --atleast-version=$version $name + if [ $? -ne 0 ]; then + echo " ERROR: Package named '$name' >= $version not found." | tee -a config.log + echo "Try adjusting your PKG_CONFIG_PATH environment variable." | tee -a config.log + return 1 + fi + echo " found." | tee -a config.log +} + +check_required_packages () +{ + echo "Looking for required packages" | tee config.log + var=required_packages_$config + for pkg in $common_packages ${!var}; do + check_package $pkg + retval=$? + [ $retval -ne 0 ] && return $retval + done + return 0 +} + +while test x$1 != x; do + case $1 in + --prefix=*) + prefix=`echo $1 | sed 's/--prefix=//'` + ;; + --prefix) + shift + prefix=$1 + ;; + --libdir=*) + libdir=`echo $1 | sed 's/--libdir=//'` + ;; + --libdir) + shift + libdir=$1 + ;; + --bindir=*) + bindir=`echo $1 | sed 's/--bindir=//'` + ;; + --bindir) + shift + bindir=$1 + ;; + --datadir=*) + datadir=`echo $1 | sed 's/--datadir=//'` + ;; + --datadir) + shift + datadir=$1 + ;; + --config=*) + conf=`echo $1 | sed 's/--config=//'` + validate_config "$conf" + if [ $? -eq 1 ]; then + config=$conf + else + echo "Invalid config name - $conf" + usage + exit 1 + fi + ;; + --help) + usage + exit + ;; + *) + echo Unknown argument $1 >&2 + usage + exit 1 + ;; + esac + shift +done + +check_required_packages +[ $? -eq 1 ] && exit 1 + +if [ -z "$libdir" ]; then + libdir=$prefix/lib +fi +if [ -z "$bindir" ]; then + bindir=$prefix/bin +fi +if [ -z "$datadir" ]; then + datadir=$prefix/share +fi + +echo "prefix=$prefix" > config.make +echo "libdir=$libdir" >> config.make +echo "bindir=$bindir" >> config.make +echo "datadir=$datadir" >> config.make +echo "RUNTIME=mono" >> config.make +echo "ASSEMBLY_VERSION=$VERSION.0.0" >> config.make +echo "VERSION=$VERSION" >> config.make +echo "PACKAGE=$PACKAGE" >> config.make +echo "CONFIG=$config" >> config.make + +echo +echo "$PACKAGE has been configured with " +echo " prefix = $prefix" +if [ "$libdir" != "$prefix/lib" ]; then + echo " libdir = $libdir" +fi +if [ "$bindir" != "$prefix/bin" ]; then + echo " bindir = $bindir" +fi +if [ "$datadir" != "$prefix/share" ]; then + echo " datadir = $datadir" +fi +echo " config = $config" +echo diff --git a/rules.make b/rules.make new file mode 100644 index 0000000..a4f37a1 --- /dev/null +++ b/rules.make @@ -0,0 +1,42 @@ +clean-local: + make pre-clean-local-hook + make $(CONFIG)_BeforeClean + -rm -f $(call quote_each,$(CLEANFILES)) + make $(CONFIG)_AfterClean + make post-clean-local-hook + +install-local: +uninstall-local: + +q2quote = '$(subst ?, ,$1)' +quote_each = $(foreach f,$(call s2q,$1),$(call q2quote,$f)) + +dist-local: + make pre-dist-local-hook "distdir=$$distdir" + for f in Makefile $(call quote_each,$(EXTRA_DIST)); do \ + d=`dirname "$$f"`; \ + test -d "$(distdir)/$$d" || \ + mkdir -p "$(distdir)/$$d"; \ + cp -p "$$f" "$(distdir)/$$d" || exit 1; \ + done + make post-dist-local-hook "distdir=$$distdir" + +dist-local-recursive: + for dir in $(call quote_each,$(SUBDIRS)); do \ + mkdir -p "$(distdir)/$$dir" || true; \ + case "$$dir" in \ + .) make dist-local "distdir=$(distdir)" || exit 1;; \ + *) (cd "$$dir"; make dist-local "distdir=$(distdir)/$$dir") || exit 1; \ + esac \ + done + +#hooks: Available hooks - all, clean, install, uninstall and dist +# and their *-local variants +pre-%-hook: ; @: +post-%-hook: ; @: + +#targets for custom commands +%_BeforeBuild: ; @: +%_AfterBuild: ; @: +%_BeforeClean: ; @: +%_AfterClean: ; @: