Makefile pour developpement multi-OS, multi-variants

crabs_makefile-5.2 ©2003-2008 - Christophe Cazajus (crabs-mettre_le_signe_at-crabs-world.com)

~~ / Makefile.SOLARIS
Makefile include.LINUX include.SOLARIS include.CGI include.CGI_BIN include.XPI xpi_rdf.xsl Pdepend.c Pinfo.c PrelativeHome.c PrelativePath.c Pprojetgpl.c Prelative.c PinfoGPL.sh PgenInfo_c.sh PenvProjet.sh Pinfo2html.sh Pinstall.sh PgenInfo_include.sh projet.env crabs_mk.sh crabs_mk.csh fr/crabs_makefile.po Makefile.SOLARIS
    1 .SILENT:
    2 SHELL= /bin/bash
    3 #Modifier le repertoire d'installation si nécessaire
    4 INSTALL=/usr/local/crabs
    5 
    6 #NOTE: les po sont rajoutés à la main
    7 ETC=include.LINUX include.SOLARIS include.CGI include.CGI_BIN include.XPI xpi_rdf.xsl
    8 LCL=projet.env crabs_mk.sh crabs_mk.csh fr/crabs_makefile.po
    9 SRC= Pdepend.c  Pinfo.c  PrelativeHome.c  PrelativePath.c Pprojetgpl.c
   10 SBIN= PinfoGPL.sh PgenInfo_c.sh PenvProjet.sh Pinfo2html.sh Pinstall.sh \
   11 	PgenInfo_include.sh
   12 
   13 I18N_SRC= PinfoGPL.sh Pinfo2html.sh Pdepend.c Pprojetgpl.c Pinstall.sh
   14 I18N_LANG=fr
   15 I18N_PK= crabs_makefile
   16 # DO NOT MODIDY AFTER THIS
   17 I18N_POT=$(I18N_PK).pot
   18 I18N_PO=$(I18N_LANG:%=%/$(I18N_PK).po)
   19 I18N_MO=$(I18N_LANG:%=%/$(I18N_PK).mo)
   20 
   21 BINDIR=../BIN/$(OS)
   22 _BIN=$(SRC:%.c=$(BINDIR)/%)
   23 _SBIN=$(SBIN:%=$(BINDIR)/%)
   24 _ETC=$(ETC:%=../ETC/%)
   25 
   26 all : ../ETC $(BINDIR) $(_BIN) $(_SBIN) $(_ETC) $(I18N_MO)
   27 install : all FORCE
   28 	test -d $(INSTALL) || mkdir -p $(INSTALL) ;\
   29 	for d in bin etc locale ; do \
   30 		test -d $(INSTALL)/$$d || mkdir $(INSTALL)/$$d ;\
   31 	done ;\
   32 	for f in $(_BIN) $(_SBIN) ; do \
   33 		cp $$f $(INSTALL)/bin ;\
   34 		echo "INSTALL: `basename $$f`" ;\
   35 	done ;\
   36 	for f in $(_ETC) ; do \
   37 		cp $$f $(INSTALL)/etc ;\
   38 		echo "INSTALL: `basename $$f`" ;\
   39 	done ;\
   40 	for f in $(I18N_MO) ; do \
   41 		L=`dirname $$f` MO=`basename $$f` ;\
   42 		echo "Install $$MO ($$L)" ;\
   43 		mkdir -p $(INSTALL)/locale/$$L/LC_MESSAGES ;\
   44 		cp $$f $(INSTALL)/locale/$$L/LC_MESSAGES/$$MO ;\
   45 	done ;\
   46 	for ext in sh csh ; do \
   47 		echo "CREATE: /etc/profile.d/crabs_mk.$$ext" ;\
   48 		cat crabs_mk.$$ext \
   49 			| sed 's?%%INSTALL%%?$(INSTALL)?' \
   50 			| sed 's?%%OS%%?$(OS)?' \
   51 			>/etc/profile.d/crabs_mk.$$ext ;\
   52 		chmod a+x /etc/profile.d/crabs_mk.$$ext ;\
   53 	done ;\
   54 	etc="$(INSTALL)/etc" ;\
   55 	if [ -f "$$PROJET_MK/projet.env" ] ; then \
   56 		[ -f "$$etc/projet.env" ] || cp "$$PROJET_MK/projet.env" "$$etc" ;\
   57 	else \
   58 		if [ ! -f $$etc/projet.env ] ; then cp "projet.env" "$$etc" ; fi;\
   59 	fi ;\
   60 	if [ `uname -s` = SunOS ] ; then \
   61 		if [ $(OS) != SOLARIS ] ; then \
   62 			[ -f $$etc/include.$(OS) ] && rm -f $$etc/include.$(OS) ;\
   63 			( cd $$etc ; ln -s include.SOLARIS include.$(OS) ) ;\
   64 		fi ;\
   65 	else \
   66 		if [ $(OS) != LINUX ] ; then \
   67 			[ -f $$etc/include.$(OS) ] && rm -f $$etc/include.$(OS) ;\
   68 			( cd $$etc ; ln -s include.LINUX include.$(OS) ) ;\
   69 		fi ;\
   70 	fi
   71 
   72 ../ETC : FORCE
   73 	[ -d $@ ] || mkdir -p $@
   74 
   75 $(BINDIR) : FORCE
   76 	[ -d $@ ] || mkdir -p $@
   77 
   78 $(BINDIR)/% : %.c
   79 	cc -O -o $@ $*.c
   80 	echo BIN: $@
   81 
   82 $(BINDIR)/% : %
   83 	cp  $* $@
   84 	chmod +x $@
   85 	echo SBIN: $@
   86 
   87 ../ETC/% : %
   88 	echo Install ETC $<
   89 	cp $< $@
   90 
   91 $(I18N_POT) : $(I18N_SRC)
   92 	echo "POT file : $@"
   93 	if [ -f $@ ] ; then \
   94 		/usr/sfw/bin/xgettext -o $@ -j $(I18N_SRC) ; \
   95 	else \
   96 		/usr/sfw/bin/xgettext -o $@ $(I18N_SRC) ; \
   97 	fi
   98 
   99 %.mo : %.po
  100 	L=`dirname $@` ;\
  101 	echo "MO file : $@ ($$L)" ;
  102 	/usr/sfw/bin/msgfmt -c -v -o $@ $<
  103 	touch $@
  104 	
  105 $(I18N_PO) : $(I18N_POT)
  106 	L=`dirname $@` ;\
  107 	[ -d $$L ] || mkdir -p $$L ; \
  108 	echo "PO file : $@ ($$L) $<" ;\
  109 	if [ ! -f $@ ] ; then \
  110 		/usr/sfw/bin/msginit --no-translator -l $$L -i $(I18N_POT) -o $@ ;\
  111 	else \
  112 		/usr/sfw/bin/msgmerge -v -s -U $@ $(I18N_POT) ;\
  113 	fi
  114 	touch $@
  115 
  116 FORCE:
Makefile include.LINUX include.SOLARIS include.CGI include.CGI_BIN include.XPI xpi_rdf.xsl Pdepend.c Pinfo.c PrelativeHome.c PrelativePath.c Pprojetgpl.c Prelative.c PinfoGPL.sh PgenInfo_c.sh PenvProjet.sh Pinfo2html.sh Pinstall.sh PgenInfo_include.sh projet.env crabs_mk.sh crabs_mk.csh fr/crabs_makefile.po Makefile.SOLARIS
~~ / Makefile.SOLARIS

Haut de page

Contacter crabs

Date de génération : 22/09/2011 21:47