neze лет назад: 9
Родитель
Сommit
4c12662cbe
3 измененных файлов с 71 добавлено и 51 удалено
  1. 34 0
      Makefile
  2. 0 46
      makefile_unix.sh
  3. 37 5
      source/Makefile

+ 34 - 0
Makefile

@@ -0,0 +1,34 @@
1
+.PHONY:all %.all install %.install clean %.clean cleandist %.cleandist release
2
+
3
+SUBMAKE:=make -s -C
4
+SUBMAKABLE:=$(shell find -mindepth 2 -name '[Mm]akefile' | sed 's%^./%%;s%/[^/]*%%')
5
+define submake
6
+	@tput setaf 3
7
+	@echo make[$1] $2
8
+	@tput sgr0
9
+	@$3 $(SUBMAKE) $1 $2
10
+endef
11
+
12
+all: $(patsubst %,%.all,$(SUBMAKABLE))
13
+
14
+%.all:
15
+	$(call submake,$*,,)
16
+
17
+install: $(patsubst %,%.install,$(SUBMAKABLE))
18
+
19
+%.install:
20
+	$(call submake,$*,install,sudo)
21
+
22
+clean: $(patsubst %,%.clean,$(SUBMAKABLE))
23
+
24
+%.clean:
25
+	$(call submake,$*,clean,)
26
+
27
+cleandist: $(patsubst %,%.cleandist,$(SUBMAKABLE))
28
+
29
+%.cleandist:
30
+	$(call submake,$*,cleandist,)
31
+
32
+release:
33
+	$(call submake,.,,)
34
+	$(call submake,.,clean,)

+ 0 - 46
makefile_unix.sh

@@ -1,46 +0,0 @@
1
-#! /bin/bash
2
-
3
-if [ "$(whoami)" != "root" ]; then
4
-  echo "Vous devez posséder les droits administrateurs pour installer ce package."
5
-  echo "Veuillez utiliser la commande « sudo sh unix_installer.sh »."
6
-  exit 1
7
-fi
8
-
9
-cd source
10
-pdflatex polytechnique.dtx >> /dev/null
11
-makeindex -q -s gind.ist -o polytechnique.ind polytechnique.idx >> /dev/null
12
-pdflatex polytechnique.dtx >> /dev/null
13
-rm *.aux *.glo *.idx *.ilg *.ind *.log *.toc *.out >> /dev/null
14
-chemindist=$(kpsewhich -var-value TEXMFMAIN)
15
-chemintex=${chemindist}/tex/latex/polytechnique
16
-cheminsource=${chemindist}/source/latex/polytechnique
17
-cheminsourceresources=${chemindist}/source/latex/polytechnique
18
-chemindoc=${chemindist}/doc/latex/polytechnique
19
-mkdir ${chemintex}
20
-mkdir ${cheminsource}
21
-mkdir ${cheminsourceresources}
22
-mkdir ${chemindoc}
23
-cp polytechnique.dtx ${cheminsource}
24
-cp polytechnique.sty ${chemintex}
25
-cp polytechnique.pdf ${chemindoc}
26
-cp *.eps ${cheminsourceresources}
27
-cp *.eps ${chemintex}
28
-cp *.pdf ${cheminsourceresources}
29
-cp *.pdf ${chemintex}
30
-echo "************************************************"
31
-echo "* La base de donnees des packages est en train *"
32
-echo "* de se mettre à jour. Cela peut prendre un    *"
33
-echo "* peu de temps. Merci de patienter.            *"
34
-echo "************************************************"
35
-texhash >> /dev/null
36
-echo "************************************************"
37
-echo "* Le package a ete installe ! La documentation *"
38
-echo "* se trouve a l'emplacement suivant :          *"
39
-echo ${chemindoc}
40
-echo "* Les fichiers sources et resources a          *"
41
-echo "* l'endroit suivant :                          *"
42
-echo ${cheminsource}
43
-echo "* Et le .sty a l'endroit suivant :             *"
44
-echo ${chemintex}
45
-echo "* Bonne utilisation !                          *"
46
-echo "************************************************"

+ 37 - 5
source/Makefile

@@ -1,22 +1,54 @@
1 1
 .PHONY: package install clean cleandist
2 2
 
3
+V:=1
4
+
5
+ifeq ("$V","1")
6
+define say
7
+	@tput setaf 4
8
+	@echo $1
9
+	@tput sgr0
10
+endef
11
+else
12
+define say
13
+endef
14
+endif
15
+
16
+define installed
17
+	@tput setaf 2
18
+	@tput bold
19
+	@echo "SUCCESS : installed in '"$1"'."
20
+endef
21
+
3 22
 PDFLATEX:=pdflatex -interaction=nonstopmode
23
+MAKEINDEX:=makeindex -q -s gind.ist -o
24
+OUTPUT:=>/dev/null 2>&1
4 25
 PKGDIR:=$(shell kpsewhich --show-path=ls-R | tr : '\n' | grep texmf | grep local | head -n1)
5 26
 POLYPKGDIR:=$(PKGDIR)/tex/latex/polytechnique
27
+DTXFILES:=$(shell find -name '*.dtx')
28
+GENFILES:=$(patsubst %.dtx,%.pdf,$(DTXFILES)) $(patsubst %.dtx,%.sty,$(DTXFILES))
6 29
 
7 30
 all: package
8 31
 
9 32
 package: polytechnique.sty
10 33
 
11 34
 %.sty: %.dtx
12
-	$(PDFLATEX) $*.dtx
35
+	$(call say,creating package file $@)
36
+	@$(PDFLATEX) $*.dtx $(OUTPUT)
37
+	@$(MAKEINDEX) $*.ind $*.idx $(OUTPUT)
38
+	@$(PDFLATEX) $*.dtx $(OUTPUT)
13 39
 
14 40
 install: package clean
15
-	mkdir -p $(POLYPKGDIR)
16
-	cp -r . $(POLYPKGDIR)
41
+	$(call say,creating destination $(POLYPKGDIR))
42
+	@mkdir -p $(POLYPKGDIR)
43
+	$(call say,copying files to $(POLYPKGDIR))
44
+	@cp -r . $(POLYPKGDIR)
45
+	@rm -f $(POLYPKGDIR)/Makefile
46
+	$(call installed,$(POLYPKGDIR))
17 47
 
18 48
 clean:
19
-	rm -f polytechnique.aux polytechnique.glo polytechnique.idx polytechnique.log polytechnique.out polytechnique.toc
49
+	$(call say,cleaning files)
50
+	@rm -f polytechnique.aux polytechnique.glo polytechnique.idx polytechnique.log polytechnique.out polytechnique.toc polytechnique.ind polytechnique.ilg
20 51
 
21 52
 cleandist: clean
22
-	rm -f polytechnique.pdf polytechnique.sty
53
+	$(call say,removing doc and package files)
54
+	@rm -f $(GENFILES)