1
# Makefile for OpenSFX set
3
MAKEFILELOCAL=Makefile.local
4
MAKEFILECONFIG=Makefile.config
8
# Add some OS detection and guess an install path (use the system's default)
9
OSTYPE=$(shell uname -s)
10
ifeq ($(OSTYPE),Linux)
11
INSTALLDIR=$(HOME)/.openttd/data
13
ifeq ($(OSTYPE),Darwin)
14
INSTALLDIR=$(HOME)/Documents/OpenTTD/data
16
ifeq ($(shell echo "$(OSTYPE)" | cut -d_ -f1),MINGW32)
17
INSTALLDIR=C:\Documents and Settings\$(USERNAME)\My Documents\OpenTTD\data
24
# define a few repository references used also in makefile.config
25
CAT_REVISION = $(shell hg parent --template="{rev}\n")
26
CAT_MODIFIED = $(shell [ -n "`hg status '.' | grep -v '^?'`" ] && echo "M" || echo "")
27
REPO_TAGS = $(shell hg parent --template="{tags}" | grep -v "tip" | cut -d\ -f1)
29
include ${MAKEFILECONFIG}
31
# OS detection: Cygwin vs Linux
32
ISCYGWIN = $(shell [ ! -d /cygdrive/ ]; echo $$?)
33
CATCODEC = $(shell [ \( $(ISCYGWIN) -eq 1 \) ] && echo catcodec.exe || echo catcodec)
35
# this overrides definitions from above:
36
-include ${MAKEFILELOCAL}
38
CAT_FILENAME = $(addsuffix .$(CAT_SUFFIX),$(FILENAME))
39
SFO_FILENAME = $(addsuffix .$(SFO_SUFFIX),$(FILENAME))
40
DIR_BASE = $(FILENAME)-
41
VERSION_STRING = $(shell [ -n "$(REPO_TAGS)" ] && echo $(REPO_TAGS)$(CAT_MODIFIED) || echo $(CAT_NIGHTLYNAME)-r$(CAT_REVISION)$(CAT_MODIFIED))
42
DIR_NAME = $(shell [ -n "$(REPO_TAGS)" ] && echo $(DIR_BASE)$(VERSION_STRING) || echo $(DIR_BASE)$(CAT_NIGHTLYNAME))
43
DIR_NAME_SRC = $(DIR_BASE)$(VERSION_STRING)-source
44
# Tarname has no version: overwrite for make install
45
TAR_FILENAME = $(DIR_NAME).$(TAR_SUFFIX)
46
# The release filenames bear the version being built.
47
ZIP_FILENAME = $(DIR_BASE)$(VERSION_STRING).$(ZIP_SUFFIX)
48
BZIP_FILENAME = $(DIR_BASE)$(VERSION_STRING).$(BZIP2_SUFFIX)
50
REPO_DIRS = $(dir $(BUNDLE_FILES))
52
-include ${MAKEFILELOCAL}
55
vpath %.pfno $(SRCDIR)
58
.PHONY: clean all bundle bundle_tar bundle_zip bundle_bzip install release release_zip remake test
66
$(_E) "Call of catcodec: $(CATCODEC) $(CATCODEC_FLAGS)"
67
$(_E) "Local installation directory: $(INSTALLDIR)"
68
$(_E) "Repository revision: r$(CAT_REVISION)"
69
$(_E) "CAT title: $(CAT_TITLE)"
70
$(_E) "CAT filenames: $(CAT_FILENAME)"
71
$(_E) "Documentation filenames: $(DOC_FILENAMES)"
72
$(_E) "sfo files: $(SFO_FILENAME)"
73
$(_E) "dep files: $(DEP_FILENAMES)"
74
$(_E) "Bundle files: $(BUNDLE_FILES)"
75
$(_E) "Bundle filenames: Tar=$(TAR_FILENAME) Zip=$(ZIP_FILENAME) Bz2=$(BZIP_FILENAME)"
76
$(_E) "Dirs (base and full): $(DIR_BASE) / $(DIR_NAME)"
77
$(_E) "Path to Unix2Dos: $(UNIX2DOS)"
80
$(OBS_FILE) : $(SRCDIR)/$(CAT_FILENAME) $(DESC_FILENAME) $(README_FILENAME) $(CHANGELOG_FILENAME) $(LICENSE_FILENAME)
81
$(_E) "[Generating:] $(OBS_FILE)"
82
@echo "[metadata]" > $(OBS_FILE)
83
@echo "name = $(CAT_NAME)" >> $(OBS_FILE)
84
@echo "shortname = $(CAT_SHORTNAME)" >> $(OBS_FILE)
85
@echo "version = $(CAT_REVISION)" >> $(OBS_FILE)
86
@echo "description = $(CAT_DESCRIPTION) [$(CAT_TITLE)]" >> $(OBS_FILE)
88
@echo "" >> $(OBS_FILE)
89
@echo "[files]" >> $(OBS_FILE)
90
@echo "samples = $(CAT_FILENAME)" >> $(OBS_FILE)
92
@echo "" >> $(OBS_FILE)
93
@echo "[md5s]" >> $(OBS_FILE)
94
@echo "$(CAT_FILENAME) = "`$(MD5SUM) $(SRCDIR)/$(CAT_FILENAME) | cut -f1 -d\ ` >> $(OBS_FILE)
96
@echo "" >> $(OBS_FILE)
97
@echo "[origin]" >> $(OBS_FILE)
98
@echo "$(CAT_ORIGIN)" >> $(OBS_FILE)
99
$(_E) "[Done] Basesound successfully generated."
102
%.$(DEP_SUFFIX) : $(SRCDIR)/%.$(SFO_SUFFIX)
103
$(_E) "[Depend] $(@:$(DEP_SUFFIX)=$(CAT_SUFFIX))"
104
$(_V) grep "wav" $< | cut -f1 -d\ | sed 's@"@@g;s@^@$(<) $(@:%.$(DEP_SUFFIX)=$(SRCDIR)/%.$(CAT_SUFFIX)) : @' | sort | uniq > $@
108
%.$(CAT_SUFFIX) : %.$(SFO_SUFFIX)
109
$(_E) "[Generating] $@"
110
$(_V)$(CATCODEC) $(CATCODEC_FLAGS) $@
113
# NFORENUM process copy of the NFO
114
.SECONDARY: %.$(SFO_SUFFIX)
115
.PRECIOUS: %.$(SFO_SUFFIX)
117
# Clean the source tree
120
$(_V)-rm -rf *.orig *.pre *.bak *.cat *~ $(FILENAME).* $(DEP_FILENAMES) $(SRCDIR)/$(CAT_FILENAME) $(SRCDIR)/*.bak
123
$(_V)-rm -rf $(DIR_BASE)* $(SRCDIR)/$(CAT_FILENAME) $(OBS_FILE) $(DIR_NAME_SRC)
125
$(DIR_NAME) : $(BUNDLE_FILES)
127
$(_E) "[Generating:] $@/."
128
$(_V)if [ -e $@ ]; then rm -rf $@; fi
130
$(_V)-for i in $(BUNDLE_FILES); do cp $$i $@; done
133
#%.$(TXT_SUFFIX): %.$(PTXT_SUFFIX)
134
# $(_E) "[Generating:] $@"
136
# | sed -e "s/$(CAT_TITLE_DUMMY)/$(CAT_TITLE)/" \
137
# | sed -e "s/$(OBS_FILE_DUMMY)/$(OBS_FILE)/" \
138
# | sed -e "s/$(REVISION_DUMMY)/$(CAT_REVISION)/" \
141
%.$(TAR_SUFFIX): % $(BUNDLE_FILES)
142
# Create the release bundle with all files in one tar
143
$(_E) "[Generating:] $@"
144
$(_V)$(TAR) $(TAR_FLAGS) $@ $(basename $@)
147
bundle_tar: $(TAR_FILENAME)
148
bundle_zip: $(ZIP_FILENAME)
149
$(ZIP_FILENAME): $(DIR_NAME)
150
$(_E) "[Generating:] $@"
151
$(_V)$(ZIP) $(ZIP_FLAGS) $@ $^
152
bundle_bzip: $(BZIP_FILENAME)
153
$(BZIP_FILENAME): $(TAR_FILENAME)
154
$(_E) "[Generating:] $@"
155
$(_V)$(BZIP) $(BZIP_FLAGS) $^
157
# Installation process
158
install: $(TAR_FILENAME) $(INSTALLDIR)
159
$(_E) "[INSTALL] to $(INSTALLDIR)"
160
$(_V)-cp $(TAR_FILENAME) $(INSTALLDIR)
164
$(_V) rm -rf $(DIR_NAME_SRC)
165
$(_V) mkdir -p $(DIR_NAME_SRC)
166
$(_V) cp -R $(SRCDIR) $(DOCDIR) Makefile Makefile.config $(DIR_NAME_SRC)
167
$(_V) cp Makefile.local.sample $(DIR_NAME_SRC)/Makefile.local
168
$(_V) echo 'CAT_REVISION = $(CAT_REVISION)' >> $(DIR_NAME_SRC)/Makefile.local
169
$(_V) echo 'CAT_MODIFIED = $(CAT_MODIFIED)' >> $(DIR_NAME_SRC)/Makefile.local
170
$(_V) echo 'REPO_TAGS = $(REPO_TAGS)' >> $(DIR_NAME_SRC)/Makefile.local
171
$(_V) $(MAKE) -C $(DIR_NAME_SRC) mrproper
172
$(_V) $(TAR) --gzip -cf $(DIR_NAME_SRC).tar.gz $(DIR_NAME_SRC)
173
$(_V) rm -rf $(DIR_NAME_SRC)
177
$(_E) "$(error Installation dir does not exist. Check your makefile.local)"
180
$(_E) "Target is obsolete. Use 'install' instead."
182
$(_E) "Target is obsolete. Use 'bundle_src' instead."
184
$(_E) "Target is obsolete. Use 'bundle_zip' instead."