|
1 | | -all: index digitalesysteme prozprog robotikprojekt softwareentwicklung |
2 | | - |
3 | | -clean-assets-index: |
4 | | - rm -f index.html index.zip |
5 | | - rm -rf assets/index/ || true |
6 | | - |
7 | | -clean-assets-digitalesysteme: |
8 | | - rm -f digitalesysteme.html digitalesysteme.zip |
9 | | - rm -rf assets/digitalesysteme/ || true |
10 | | - rm -rf assets/pdf/* || true |
11 | | - |
12 | | -clean-assets-prozprog: |
13 | | - rm -f prozprog.html prozprog.zip |
14 | | - rm -rf assets/prozprog/ || true |
15 | | - rm -rf assets/pdf/* || true |
16 | | - |
17 | | -clean-assets-robotikprojekt: |
18 | | - rm -f robotikprojekt.html robotikprojekt.zip |
19 | | - rm -rf assets/robotikprojekt/ || true |
20 | | - rm -rf assets/pdf/* || true |
21 | | - |
22 | | -clean-assets-softwareentwicklung: |
23 | | - rm -f softwareentwicklung.html softwareentwicklung.zip |
24 | | - rm -rf assets/softwareentwicklung/ || true |
25 | | - rm -rf assets/pdf/* || true |
| 1 | +# Course configuration |
| 2 | +COURSES = index digitalesysteme prozprog robotikprojekt softwareentwicklung |
| 3 | +PDF_COURSES = digitalesysteme prozprog robotikprojekt softwareentwicklung |
| 4 | +SCORM_ORG = "TU-Bergakademie Freiberg" |
| 5 | +SCORM_SCORE = 80 |
| 6 | + |
| 7 | +.DEFAULT_GOAL := all |
| 8 | +all: $(COURSES) |
| 9 | + |
| 10 | +# Generic function to build a course |
| 11 | +define build_course |
| 12 | +$(1): clean-$(1) build-$(1) organize-$(1) git-update |
| 13 | + |
| 14 | +clean-$(1): |
| 15 | + rm -f $(1).html $(1).zip |
| 16 | + rm -rf assets/$(1)/ || true |
| 17 | + $(if $(filter $(1),$(PDF_COURSES)),rm -rf assets/pdf/* || true) |
| 18 | + |
| 19 | +build-$(1): |
| 20 | + $(if $(filter $(1),$(PDF_COURSES)), \ |
| 21 | + liaex --input $(1).yml --output $(1) --format project --project-generate-pdf --scorm-organization $(SCORM_ORG) --scorm-embed --scorm-masteryScore $(SCORM_SCORE), \ |
| 22 | + liaex --input $(1).yml --output $(1) --format project) |
| 23 | + |
| 24 | +organize-$(1): |
| 25 | + $(if $(filter $(1),$(PDF_COURSES)), \ |
| 26 | + mkdir -p assets/$(1)/pdf && \ |
| 27 | + cp assets/pdf/*.pdf assets/$(1)/pdf/ 2>/dev/null || true && \ |
| 28 | + sed -i 's|assets/pdf/|assets/$(1)/pdf/|g' $(1).html) |
| 29 | +endef |
| 30 | + |
| 31 | +# Generate targets for all courses |
| 32 | +$(foreach course,$(COURSES),$(eval $(call build_course,$(course)))) |
26 | 33 |
|
27 | 34 | git-update: |
28 | 35 | git add assets/ || true |
29 | 36 | git add -A |
30 | 37 | git commit --amend --no-edit |
31 | 38 | git push origin main -f |
32 | 39 |
|
33 | | -index: clean-assets-index index-build organize-assets-index git-update |
34 | | - |
35 | | -index-build: |
36 | | - liaex --input index.yml --output index --format project |
37 | | - |
38 | | -organize-assets-index: |
39 | | - mkdir -p assets/index/pdf || true |
40 | | - find assets/pdf -name "*.pdf" -newer index.yml -exec cp {} assets/index/pdf/ \; 2>/dev/null || true |
41 | | - |
42 | | -digitalesysteme: clean-assets-digitalesysteme digitalesysteme-build organize-assets-digitalesysteme git-update |
43 | | - |
44 | | -digitalesysteme-build: |
45 | | - liaex --input digitalesysteme.yml --output digitalesysteme --format project --project-generate-pdf --scorm-organization "TU-Bergakademie Freiberg" --scorm-embed --scorm-masteryScore 80 |
46 | | - |
47 | | -organize-assets-digitalesysteme: |
48 | | - mkdir -p assets/digitalesysteme/pdf || true |
49 | | - cp assets/pdf/*.pdf assets/digitalesysteme/pdf/ 2>/dev/null || true |
50 | | - sed -i 's|assets/pdf/|assets/digitalesysteme/pdf/|g' digitalesysteme.html |
51 | | - |
52 | | -prozprog: clean-assets-prozprog prozprog-build organize-assets-prozprog git-update |
53 | | - |
54 | | -prozprog-build: |
55 | | - liaex --input prozprog.yml --output prozprog --format project --project-generate-pdf --scorm-organization "TU-Bergakademie Freiberg" --scorm-embed --scorm-masteryScore 80 |
56 | | - |
57 | | -organize-assets-prozprog: |
58 | | - mkdir -p assets/prozprog/pdf || true |
59 | | - cp assets/pdf/*.pdf assets/prozprog/pdf/ 2>/dev/null || true |
60 | | - sed -i 's|assets/pdf/|assets/prozprog/pdf/|g' prozprog.html |
61 | | - |
62 | | -robotikprojekt: clean-assets-robotikprojekt robotikprojekt-build organize-assets-robotikprojekt git-update |
63 | | - |
64 | | -robotikprojekt-build: |
65 | | - liaex --input robotikprojekt.yml --output robotikprojekt --format project --project-generate-pdf --scorm-organization "TU-Bergakademie Freiberg" --scorm-embed --scorm-masteryScore 80 |
66 | | - |
67 | | -organize-assets-robotikprojekt: |
68 | | - mkdir -p assets/robotikprojekt/pdf || true |
69 | | - cp assets/pdf/*.pdf assets/robotikprojekt/pdf/ 2>/dev/null || true |
70 | | - sed -i 's|assets/pdf/|assets/robotikprojekt/pdf/|g' robotikprojekt.html |
71 | | - |
72 | | -softwareentwicklung: clean-assets-softwareentwicklung softwareentwicklung-build organize-assets-softwareentwicklung git-update |
73 | | - |
74 | | -softwareentwicklung-build: |
75 | | - liaex --input softwareentwicklung.yml --output softwareentwicklung --format project --project-generate-pdf --scorm-organization "TU-Bergakademie Freiberg" --scorm-embed --scorm-masteryScore 80 |
76 | | - |
77 | | -organize-assets-softwareentwicklung: |
78 | | - mkdir -p assets/softwareentwicklung/pdf || true |
79 | | - cp assets/pdf/*.pdf assets/softwareentwicklung/pdf/ 2>/dev/null || true |
80 | | - sed -i 's|assets/pdf/|assets/softwareentwicklung/pdf/|g' softwareentwicklung.html |
| 40 | +# Utility targets |
| 41 | +clean-all: |
| 42 | + rm -f *.html *.zip |
| 43 | + rm -rf assets/*/ |
| 44 | + |
| 45 | +help: |
| 46 | + @echo "Available targets:" |
| 47 | + @echo " all - Build all courses" |
| 48 | + @echo " clean-all - Clean all generated files" |
| 49 | + @echo " git-update - Update git repository" |
| 50 | + @echo "" |
| 51 | + @echo "Individual courses:" |
| 52 | + @$(foreach course,$(COURSES),echo " $(course)";) |
| 53 | + @echo "" |
| 54 | + @echo "Course configuration:" |
| 55 | + @echo " PDF courses: $(PDF_COURSES)" |
| 56 | + @echo " SCORM org: $(SCORM_ORG)" |
| 57 | + @echo " SCORM score: $(SCORM_SCORE)" |
| 58 | + |
| 59 | +.PHONY: all clean-all git-update help $(COURSES) |
0 commit comments