1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-14 17:34:47 +00:00
hyperrogue/Makefile.am
Arthur O'Dwyer 3a29576d9f Add build steps to check the committed files against "make clean".
If "make clean" on a new checkout causes diffs, you accidentally committed
one of the build products currently listed in "make clean", and you
should `git rm` it again.

If "make clean" on a dirty/built checkout causes diffs, then either
(1) the "make" process modified some tracked file which is not removed
by "make clean", i.e. either (1A) it is a build product which needs to
be `git rm`ed AND added under "make clean", or (1B) the build process
is modifying some source file, which is highly weird and shouldn't happen;
or else (2) "make" created some untracked file which is not removed
by "make clean", i.e., you should add that build product to "make clean".

The Travis build that uses "mymake" now does the same "mv" trick as Github CI,
to avoid having the executable sometimes named "./hyperrogue" and sometimes
named "./hyper". Why are these filenames different, anyway?
2021-03-10 12:00:11 -05:00

52 lines
2.1 KiB
Makefile

bin_PROGRAMS = hyperrogue
hyperroguedir = $(datadir)/hyperrogue
hyperrogue_SOURCES = hyper.cpp savepng.cpp
hyperrogue_CPPFLAGS = -DFONTDESTDIR=\"$(pkgdatadir)/DejaVuSans-Bold.ttf\" -DMUSICDESTDIR=\"$(pkgdatadir)/hyperrogue-music.txt\" -DSOUNDDESTDIR=\"$(pkgdatadir)/sounds/\" -DRESOURCEDESTDIR=\"$(pkgdatadir)/\"
hyperrogue_CXXFLAGS = -O2 -std=c++11 ${AM_CXXFLAGS}
dist_hyperrogue_DATA = hyperrogue-music.txt DejaVuSans-Bold.ttf solv-geodesics.dat shyp-geodesics.dat ssol-geodesics.dat honeycomb-rules-435.dat honeycomb-rules-534.dat honeycomb-rules-535.dat
# docdir
dist_doc_DATA = README.md
# musicdir
musicdir=$(datadir)/hyperrogue/music
dist_music_DATA = music/hr3-caves.ogg music/hr3-desert.ogg music/hr3-hell.ogg music/hr3-jungle.ogg music/hr3-mirror.ogg music/hr3-rlyeh.ogg music/hr3-crossroads.ogg music/hr3-graveyard.ogg music/hr3-icyland.ogg music/hr3-laboratory.ogg music/hr3-motion.ogg music/hr-savino-palace.ogg music/hr-savino-caribbean.ogg music/hr-savino-ocean.ogg music/hr-savino-ivory.ogg
# soundsdir
soundsdir=$(datadir)/hyperrogue/sounds
dist_sounds_DATA = sounds/*
noinst_PROGRAMS = langen makeh
langen_SOURCES = langen.cpp
langen_CXXFLAGS = -O0 -std=c++11 ${AM_CXXFLAGS}
makeh_SOURCES = makeh.cpp
BUILT_SOURCES = language-data.cpp autohdr.h
CLEANFILES = language-data.cpp autohdr.h
language-data.cpp: langen
./langen > language-data.cpp
autohdr.h: makeh language-data.cpp *.cpp
./makeh classes.cpp locations.cpp hyperpoint.cpp geometry.cpp goldberg.cpp init.cpp floorshapes.cpp cell.cpp multi.cpp shmup.cpp pattern2.cpp mapeditor.cpp graph.cpp textures.cpp hprint.cpp language.cpp util.cpp complex.cpp *.cpp > autohdr.h
#############################
# Platform specific setup
#############################
if MAC
hyperrogue_LDFLAGS = -lSDLmain -framework AppKit -framework OpenGL
endif MAC
if MINGW
nodist_hyperrogue_SOURCES = hyper.res
hyperrogue_CPPFLAGS += -march=native -DWINDOWS
windres_prefix = ${host_cpu}-w64-mingw32-
endif MINGW
#############################
# Arch specific setup
#############################
hyper.res: hyper.rc hr-icon.ico
${windres_prefix}windres hyper.rc -O coff -o hyper.res