mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 14:02:59 +00:00 
			
		
		
		
	Merge pull request #142 from Quuxplusone/no-automake
Eliminate autotools/automake/configure.
This commit is contained in:
		
							
								
								
									
										8
									
								
								.github/workflows/build.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/build.sh
									
									
									
									
										vendored
									
									
								
							| @@ -2,7 +2,6 @@ set -x -e o pipefail | |||||||
|  |  | ||||||
|  |  | ||||||
| GH_MYMAKE_ARGS="-fPIC" | GH_MYMAKE_ARGS="-fPIC" | ||||||
| GH_AUTOTOOLS_CXXFLAGS="-W -Wall -Wextra -Wno-unused-parameter -Wno-maybe-uninitialized" |  | ||||||
|  |  | ||||||
| HYPERROGUE_USE_GLEW=$GH_HYP_GLEW | HYPERROGUE_USE_GLEW=$GH_HYP_GLEW | ||||||
| export HYPERROGUE_USE_GLEW=${HYPERROGUE_USE_GLEW: -1} | export HYPERROGUE_USE_GLEW=${HYPERROGUE_USE_GLEW: -1} | ||||||
| @@ -14,20 +13,15 @@ HYPERROGUE_USE_ROGUEVIZ=$GH_HYP_RVIZ | |||||||
| export HYPERROGUE_USE_ROGUEVIZ=${HYPERROGUE_USE_ROGUEVIZ: -1} | export HYPERROGUE_USE_ROGUEVIZ=${HYPERROGUE_USE_ROGUEVIZ: -1} | ||||||
| if [[ "$GH_HYP_RVIZ" == "rviz_1" ]]; then | if [[ "$GH_HYP_RVIZ" == "rviz_1" ]]; then | ||||||
|   GH_MYMAKE_ARGS+=" -std=c++17 -rv" |   GH_MYMAKE_ARGS+=" -std=c++17 -rv" | ||||||
|   GH_AUTOTOOLS_CXXFLAGS+=" -std=c++17 -DCAP_ROGUEVIZ=1" |  | ||||||
| fi | fi | ||||||
|  |  | ||||||
| export CC=$GH_COMPILER | export CC=$GH_COMPILER | ||||||
| export CXX=${CC%cc}++ | export CXX=${CC%cc}++ | ||||||
|  |  | ||||||
| if [[ "$GH_BUILDSYS" == "makefile" ]]; then | if [[ "$GH_BUILDSYS" == "makefile" ]]; then | ||||||
|   make -f Makefile.simple |  | ||||||
| elif [[ "$GH_BUILDSYS" == "autotools" ]]; then |  | ||||||
|   autoreconf -vfi |  | ||||||
|   ./configure CXXFLAGS="${GH_AUTOTOOLS_CXXFLAGS}" |  | ||||||
|   make |   make | ||||||
| elif [[ "$GH_BUILDSYS" == "mymake" ]]; then | elif [[ "$GH_BUILDSYS" == "mymake" ]]; then | ||||||
|   make -f Makefile.simple mymake |   make mymake | ||||||
|   ./mymake $GH_MYMAKE_ARGS |   ./mymake $GH_MYMAKE_ARGS | ||||||
|   mv hyper hyperrogue |   mv hyper hyperrogue | ||||||
| else | else | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								.github/workflows/github_ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/github_ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -15,7 +15,7 @@ jobs: | |||||||
|       matrix: |       matrix: | ||||||
|         os: [ubuntu-latest, macos-latest] |         os: [ubuntu-latest, macos-latest] | ||||||
|         compiler: [gcc, clang] |         compiler: [gcc, clang] | ||||||
|         build_system: [makefile, autotools, mymake] |         build_system: [makefile, mymake] | ||||||
|         hyper_use_rviz: [rviz_1, rviz_0] |         hyper_use_rviz: [rviz_1, rviz_0] | ||||||
|         hyper_use_png: [png_1] |         hyper_use_png: [png_1] | ||||||
|         hyper_use_glew: [glew_1] |         hyper_use_glew: [glew_1] | ||||||
| @@ -42,7 +42,7 @@ jobs: | |||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         compiler: [gcc] |         compiler: [gcc] | ||||||
|         build_system: [makefile, autotools, mymake] |         build_system: [makefile, mymake] | ||||||
|         hyper_use_rviz: [rviz_1, rviz_0] |         hyper_use_rviz: [rviz_1, rviz_0] | ||||||
|         hyper_use_png: [png_1] |         hyper_use_png: [png_1] | ||||||
|         hyper_use_glew: [glew_1] |         hyper_use_glew: [glew_1] | ||||||
| @@ -77,7 +77,7 @@ jobs: | |||||||
|     - uses: actions/checkout@v2 |     - uses: actions/checkout@v2 | ||||||
|     - name: Build |     - name: Build | ||||||
|       run: | |       run: | | ||||||
|         docker run --rm -v $(pwd):/src trzeci/emscripten make -f Makefile.simple emscripten |         docker run --rm -v $(pwd):/src trzeci/emscripten make emscripten | ||||||
|     - name: Do a simple test |     - name: Do a simple test | ||||||
|       run: | |       run: | | ||||||
|         ls -lAF hyper.html hyper.js hyper.wasm |         ls -lAF hyper.html hyper.js hyper.wasm | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								.github/workflows/install_deps.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/install_deps.sh
									
									
									
									
										vendored
									
									
								
							| @@ -17,12 +17,6 @@ if [[ "$GH_HYP_PNG" == "png_1" ]]; then | |||||||
|   GH_DEPS_MINGW64+=" libpng:x" |   GH_DEPS_MINGW64+=" libpng:x" | ||||||
| fi | fi | ||||||
|  |  | ||||||
| if [[ "$GH_BUILDSYS" == "autotools" ]]; then |  | ||||||
|   GH_DEPS_UBUNTU+=" autoconf" |  | ||||||
|   GH_DEPS_MACOS+=" automake" |  | ||||||
|   GH_DEPS_MINGW64+=" automake-wrapper autoconf" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [[ "$GH_OS" == "ubuntu-latest" ]]; then | if [[ "$GH_OS" == "ubuntu-latest" ]]; then | ||||||
|   sudo apt-get -y install $GH_DEPS_UBUNTU |   sudo apt-get -y install $GH_DEPS_UBUNTU | ||||||
| elif [[ "$GH_OS" == "macos-latest" ]]; then | elif [[ "$GH_OS" == "macos-latest" ]]; then | ||||||
|   | |||||||
							
								
								
									
										17
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,18 +1 @@ | |||||||
| .deps/ | .deps/ | ||||||
| ChangeLog |  | ||||||
| Makefile.in |  | ||||||
| aclocal.m4 |  | ||||||
| autom4te* |  | ||||||
| config.guess |  | ||||||
| config.sub |  | ||||||
| config.log |  | ||||||
| config.status |  | ||||||
| configure |  | ||||||
| depcomp |  | ||||||
| Makefile |  | ||||||
| install-sh |  | ||||||
| missing |  | ||||||
| compile |  | ||||||
| NEWS |  | ||||||
| AUTHORS |  | ||||||
| README |  | ||||||
|   | |||||||
							
								
								
									
										50
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								.travis.yml
									
									
									
									
									
								
							| @@ -4,23 +4,6 @@ services: | |||||||
|   - docker |   - docker | ||||||
| matrix: | matrix: | ||||||
|   include: |   include: | ||||||
|   - os: linux                           # Linux GCC, autotools |  | ||||||
|     compiler: gcc |  | ||||||
|     env: >- |  | ||||||
|       TRAVIS_OS_NAME=linux |  | ||||||
|       TRAVIS_COMPILER_NAME=gcc |  | ||||||
|       TRAVIS_BUILD_SYSTEM=autotools |  | ||||||
|       HYPERROGUE_USE_GLEW=1 |  | ||||||
|       HYPERROGUE_USE_PNG=1 |  | ||||||
|   - os: osx                             # OSX, autotools |  | ||||||
|     osx_image: xcode12.2 |  | ||||||
|     compiler: clang |  | ||||||
|     env: >- |  | ||||||
|       TRAVIS_OS_NAME=osx |  | ||||||
|       TRAVIS_COMPILER_NAME=clang |  | ||||||
|       TRAVIS_BUILD_SYSTEM=autotools |  | ||||||
|       HYPERROGUE_USE_GLEW=1 |  | ||||||
|       HYPERROGUE_USE_PNG=1 |  | ||||||
|   - os: linux                           # Linux GCC, make |   - os: linux                           # Linux GCC, make | ||||||
|     compiler: gcc |     compiler: gcc | ||||||
|     env: >- |     env: >- | ||||||
| @@ -169,35 +152,20 @@ before_install: | |||||||
|       exit 'Unsupported OS' |       exit 'Unsupported OS' | ||||||
|     fi |     fi | ||||||
|   fi |   fi | ||||||
| - |- |  | ||||||
|   # Install autotools if asked for |  | ||||||
|   if [[ "$TRAVIS_USE_AUTOTOOLS" == "1" ]]; then |  | ||||||
|     if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then |  | ||||||
|       echo 'autotools is installed by default' |  | ||||||
|     elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then |  | ||||||
|       brew install automake |  | ||||||
|     else |  | ||||||
|       exit 'Unsupported OS' |  | ||||||
|     fi |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
| script: | script: | ||||||
| - |- | - |- | ||||||
|   make -f Makefile.simple clean |   make clean | ||||||
|   if [[ "$(git status --porcelain)" ]]; then |   if [[ "$(git status --porcelain)" ]]; then | ||||||
|     git status |     git status | ||||||
|     exit 'A build artifact was committed; git rm it and try again' |     exit 'A build artifact was committed; git rm it and try again' | ||||||
|   fi |   fi | ||||||
| - |- | - |- | ||||||
|   # Build hyperrogue. |   # Build hyperrogue. | ||||||
|   if [[ "$TRAVIS_BUILD_SYSTEM" == "autotools" ]]; then |   if [[ "$TRAVIS_BUILD_SYSTEM" == "Makefile" ]]; then | ||||||
|     autoreconf -vi |  | ||||||
|     ./configure CXXFLAGS="-W -Wall -Wextra -Werror -Wno-unused-parameter -Wno-maybe-uninitialized -Wno-unknown-warning-option" |  | ||||||
|     make |     make | ||||||
|   elif [[ "$TRAVIS_BUILD_SYSTEM" == "Makefile" ]]; then |  | ||||||
|     make -f Makefile.simple |  | ||||||
|   elif [[ "$TRAVIS_BUILD_SYSTEM" == "mymake" ]]; then |   elif [[ "$TRAVIS_BUILD_SYSTEM" == "mymake" ]]; then | ||||||
|     make -f Makefile.simple mymake |     make mymake | ||||||
|     if [[ "$HYPERROGUE_USE_ROGUEVIZ" == "1" ]]; then |     if [[ "$HYPERROGUE_USE_ROGUEVIZ" == "1" ]]; then | ||||||
|       ./mymake -rv |       ./mymake -rv | ||||||
|     else |     else | ||||||
| @@ -205,7 +173,7 @@ script: | |||||||
|     fi |     fi | ||||||
|     mv hyper hyperrogue |     mv hyper hyperrogue | ||||||
|   elif [[ "$TRAVIS_BUILD_SYSTEM" == "emscripten" ]]; then |   elif [[ "$TRAVIS_BUILD_SYSTEM" == "emscripten" ]]; then | ||||||
|     docker run --rm -v $(pwd):/src trzeci/emscripten make -f Makefile.simple emscripten |     docker run --rm -v $(pwd):/src trzeci/emscripten make emscripten | ||||||
|   else |   else | ||||||
|     exit 'Unsupported build system' |     exit 'Unsupported build system' | ||||||
|   fi |   fi | ||||||
| @@ -217,18 +185,8 @@ script: | |||||||
|     ./hyperrogue --help |     ./hyperrogue --help | ||||||
|   fi |   fi | ||||||
| - |- | - |- | ||||||
|   if [[ "$TRAVIS_BUILD_SYSTEM" == "autotools" ]]; then |  | ||||||
|   make clean |   make clean | ||||||
|   else |  | ||||||
|     make -f Makefile.simple clean |  | ||||||
|   fi |  | ||||||
|   if [[ "$(git status --porcelain)" ]]; then |   if [[ "$(git status --porcelain)" ]]; then | ||||||
|     git status |     git status | ||||||
|     exit 'make clean did not return the repository to its pre-build state' |     exit 'make clean did not return the repository to its pre-build state' | ||||||
|   fi |   fi | ||||||
| - |- |  | ||||||
|   # Test "make dist". ("make distcheck" is expected to fail.) |  | ||||||
|   if [[ "$TRAVIS_BUILD_SYSTEM" == "autotools" ]]; then make dist; fi |  | ||||||
| - |- |  | ||||||
|   # Test "sudo make install". |  | ||||||
|   if [[ "$TRAVIS_BUILD_SYSTEM" == "autotools" ]]; then sudo make install; fi |  | ||||||
|   | |||||||
							
								
								
									
										370
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						
									
										370
									
								
								INSTALL
									
									
									
									
									
								
							| @@ -1,370 +0,0 @@ | |||||||
| Installation Instructions |  | ||||||
| ************************* |  | ||||||
|  |  | ||||||
| Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, |  | ||||||
| Inc. |  | ||||||
|  |  | ||||||
|    Copying and distribution of this file, with or without modification, |  | ||||||
| are permitted in any medium without royalty provided the copyright |  | ||||||
| notice and this notice are preserved.  This file is offered as-is, |  | ||||||
| without warranty of any kind. |  | ||||||
|  |  | ||||||
| Basic Installation |  | ||||||
| ================== |  | ||||||
|  |  | ||||||
|    Briefly, the shell command `./configure && make && make install' |  | ||||||
| should configure, build, and install this package.  The following |  | ||||||
| more-detailed instructions are generic; see the `README' file for |  | ||||||
| instructions specific to this package.  Some packages provide this |  | ||||||
| `INSTALL' file but do not implement all of the features documented |  | ||||||
| below.  The lack of an optional feature in a given package is not |  | ||||||
| necessarily a bug.  More recommendations for GNU packages can be found |  | ||||||
| in *note Makefile Conventions: (standards)Makefile Conventions. |  | ||||||
|  |  | ||||||
|    The `configure' shell script attempts to guess correct values for |  | ||||||
| various system-dependent variables used during compilation.  It uses |  | ||||||
| those values to create a `Makefile' in each directory of the package. |  | ||||||
| It may also create one or more `.h' files containing system-dependent |  | ||||||
| definitions.  Finally, it creates a shell script `config.status' that |  | ||||||
| you can run in the future to recreate the current configuration, and a |  | ||||||
| file `config.log' containing compiler output (useful mainly for |  | ||||||
| debugging `configure'). |  | ||||||
|  |  | ||||||
|    It can also use an optional file (typically called `config.cache' |  | ||||||
| and enabled with `--cache-file=config.cache' or simply `-C') that saves |  | ||||||
| the results of its tests to speed up reconfiguring.  Caching is |  | ||||||
| disabled by default to prevent problems with accidental use of stale |  | ||||||
| cache files. |  | ||||||
|  |  | ||||||
|    If you need to do unusual things to compile the package, please try |  | ||||||
| to figure out how `configure' could check whether to do them, and mail |  | ||||||
| diffs or instructions to the address given in the `README' so they can |  | ||||||
| be considered for the next release.  If you are using the cache, and at |  | ||||||
| some point `config.cache' contains results you don't want to keep, you |  | ||||||
| may remove or edit it. |  | ||||||
|  |  | ||||||
|    The file `configure.ac' (or `configure.in') is used to create |  | ||||||
| `configure' by a program called `autoconf'.  You need `configure.ac' if |  | ||||||
| you want to change it or regenerate `configure' using a newer version |  | ||||||
| of `autoconf'. |  | ||||||
|  |  | ||||||
|    The simplest way to compile this package is: |  | ||||||
|  |  | ||||||
|   1. `cd' to the directory containing the package's source code and type |  | ||||||
|      `./configure' to configure the package for your system. |  | ||||||
|  |  | ||||||
|      Running `configure' might take a while.  While running, it prints |  | ||||||
|      some messages telling which features it is checking for. |  | ||||||
|  |  | ||||||
|   2. Type `make' to compile the package. |  | ||||||
|  |  | ||||||
|   3. Optionally, type `make check' to run any self-tests that come with |  | ||||||
|      the package, generally using the just-built uninstalled binaries. |  | ||||||
|  |  | ||||||
|   4. Type `make install' to install the programs and any data files and |  | ||||||
|      documentation.  When installing into a prefix owned by root, it is |  | ||||||
|      recommended that the package be configured and built as a regular |  | ||||||
|      user, and only the `make install' phase executed with root |  | ||||||
|      privileges. |  | ||||||
|  |  | ||||||
|   5. Optionally, type `make installcheck' to repeat any self-tests, but |  | ||||||
|      this time using the binaries in their final installed location. |  | ||||||
|      This target does not install anything.  Running this target as a |  | ||||||
|      regular user, particularly if the prior `make install' required |  | ||||||
|      root privileges, verifies that the installation completed |  | ||||||
|      correctly. |  | ||||||
|  |  | ||||||
|   6. You can remove the program binaries and object files from the |  | ||||||
|      source code directory by typing `make clean'.  To also remove the |  | ||||||
|      files that `configure' created (so you can compile the package for |  | ||||||
|      a different kind of computer), type `make distclean'.  There is |  | ||||||
|      also a `make maintainer-clean' target, but that is intended mainly |  | ||||||
|      for the package's developers.  If you use it, you may have to get |  | ||||||
|      all sorts of other programs in order to regenerate files that came |  | ||||||
|      with the distribution. |  | ||||||
|  |  | ||||||
|   7. Often, you can also type `make uninstall' to remove the installed |  | ||||||
|      files again.  In practice, not all packages have tested that |  | ||||||
|      uninstallation works correctly, even though it is required by the |  | ||||||
|      GNU Coding Standards. |  | ||||||
|  |  | ||||||
|   8. Some packages, particularly those that use Automake, provide `make |  | ||||||
|      distcheck', which can by used by developers to test that all other |  | ||||||
|      targets like `make install' and `make uninstall' work correctly. |  | ||||||
|      This target is generally not run by end users. |  | ||||||
|  |  | ||||||
| Compilers and Options |  | ||||||
| ===================== |  | ||||||
|  |  | ||||||
|    Some systems require unusual options for compilation or linking that |  | ||||||
| the `configure' script does not know about.  Run `./configure --help' |  | ||||||
| for details on some of the pertinent environment variables. |  | ||||||
|  |  | ||||||
|    You can give `configure' initial values for configuration parameters |  | ||||||
| by setting variables in the command line or in the environment.  Here |  | ||||||
| is an example: |  | ||||||
|  |  | ||||||
|      ./configure CC=c99 CFLAGS=-g LIBS=-lposix |  | ||||||
|  |  | ||||||
|    *Note Defining Variables::, for more details. |  | ||||||
|  |  | ||||||
| Compiling For Multiple Architectures |  | ||||||
| ==================================== |  | ||||||
|  |  | ||||||
|    You can compile the package for more than one kind of computer at the |  | ||||||
| same time, by placing the object files for each architecture in their |  | ||||||
| own directory.  To do this, you can use GNU `make'.  `cd' to the |  | ||||||
| directory where you want the object files and executables to go and run |  | ||||||
| the `configure' script.  `configure' automatically checks for the |  | ||||||
| source code in the directory that `configure' is in and in `..'.  This |  | ||||||
| is known as a "VPATH" build. |  | ||||||
|  |  | ||||||
|    With a non-GNU `make', it is safer to compile the package for one |  | ||||||
| architecture at a time in the source code directory.  After you have |  | ||||||
| installed the package for one architecture, use `make distclean' before |  | ||||||
| reconfiguring for another architecture. |  | ||||||
|  |  | ||||||
|    On MacOS X 10.5 and later systems, you can create libraries and |  | ||||||
| executables that work on multiple system types--known as "fat" or |  | ||||||
| "universal" binaries--by specifying multiple `-arch' options to the |  | ||||||
| compiler but only a single `-arch' option to the preprocessor.  Like |  | ||||||
| this: |  | ||||||
|  |  | ||||||
|      ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ |  | ||||||
|                  CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ |  | ||||||
|                  CPP="gcc -E" CXXCPP="g++ -E" |  | ||||||
|  |  | ||||||
|    This is not guaranteed to produce working output in all cases, you |  | ||||||
| may have to build one architecture at a time and combine the results |  | ||||||
| using the `lipo' tool if you have problems. |  | ||||||
|  |  | ||||||
| Installation Names |  | ||||||
| ================== |  | ||||||
|  |  | ||||||
|    By default, `make install' installs the package's commands under |  | ||||||
| `/usr/local/bin', include files under `/usr/local/include', etc.  You |  | ||||||
| can specify an installation prefix other than `/usr/local' by giving |  | ||||||
| `configure' the option `--prefix=PREFIX', where PREFIX must be an |  | ||||||
| absolute file name. |  | ||||||
|  |  | ||||||
|    You can specify separate installation prefixes for |  | ||||||
| architecture-specific files and architecture-independent files.  If you |  | ||||||
| pass the option `--exec-prefix=PREFIX' to `configure', the package uses |  | ||||||
| PREFIX as the prefix for installing programs and libraries. |  | ||||||
| Documentation and other data files still use the regular prefix. |  | ||||||
|  |  | ||||||
|    In addition, if you use an unusual directory layout you can give |  | ||||||
| options like `--bindir=DIR' to specify different values for particular |  | ||||||
| kinds of files.  Run `configure --help' for a list of the directories |  | ||||||
| you can set and what kinds of files go in them.  In general, the |  | ||||||
| default for these options is expressed in terms of `${prefix}', so that |  | ||||||
| specifying just `--prefix' will affect all of the other directory |  | ||||||
| specifications that were not explicitly provided. |  | ||||||
|  |  | ||||||
|    The most portable way to affect installation locations is to pass the |  | ||||||
| correct locations to `configure'; however, many packages provide one or |  | ||||||
| both of the following shortcuts of passing variable assignments to the |  | ||||||
| `make install' command line to change installation locations without |  | ||||||
| having to reconfigure or recompile. |  | ||||||
|  |  | ||||||
|    The first method involves providing an override variable for each |  | ||||||
| affected directory.  For example, `make install |  | ||||||
| prefix=/alternate/directory' will choose an alternate location for all |  | ||||||
| directory configuration variables that were expressed in terms of |  | ||||||
| `${prefix}'.  Any directories that were specified during `configure', |  | ||||||
| but not in terms of `${prefix}', must each be overridden at install |  | ||||||
| time for the entire installation to be relocated.  The approach of |  | ||||||
| makefile variable overrides for each directory variable is required by |  | ||||||
| the GNU Coding Standards, and ideally causes no recompilation. |  | ||||||
| However, some platforms have known limitations with the semantics of |  | ||||||
| shared libraries that end up requiring recompilation when using this |  | ||||||
| method, particularly noticeable in packages that use GNU Libtool. |  | ||||||
|  |  | ||||||
|    The second method involves providing the `DESTDIR' variable.  For |  | ||||||
| example, `make install DESTDIR=/alternate/directory' will prepend |  | ||||||
| `/alternate/directory' before all installation names.  The approach of |  | ||||||
| `DESTDIR' overrides is not required by the GNU Coding Standards, and |  | ||||||
| does not work on platforms that have drive letters.  On the other hand, |  | ||||||
| it does better at avoiding recompilation issues, and works well even |  | ||||||
| when some directory options were not specified in terms of `${prefix}' |  | ||||||
| at `configure' time. |  | ||||||
|  |  | ||||||
| Optional Features |  | ||||||
| ================= |  | ||||||
|  |  | ||||||
|    If the package supports it, you can cause programs to be installed |  | ||||||
| with an extra prefix or suffix on their names by giving `configure' the |  | ||||||
| option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. |  | ||||||
|  |  | ||||||
|    Some packages pay attention to `--enable-FEATURE' options to |  | ||||||
| `configure', where FEATURE indicates an optional part of the package. |  | ||||||
| They may also pay attention to `--with-PACKAGE' options, where PACKAGE |  | ||||||
| is something like `gnu-as' or `x' (for the X Window System).  The |  | ||||||
| `README' should mention any `--enable-' and `--with-' options that the |  | ||||||
| package recognizes. |  | ||||||
|  |  | ||||||
|    For packages that use the X Window System, `configure' can usually |  | ||||||
| find the X include and library files automatically, but if it doesn't, |  | ||||||
| you can use the `configure' options `--x-includes=DIR' and |  | ||||||
| `--x-libraries=DIR' to specify their locations. |  | ||||||
|  |  | ||||||
|    Some packages offer the ability to configure how verbose the |  | ||||||
| execution of `make' will be.  For these packages, running `./configure |  | ||||||
| --enable-silent-rules' sets the default to minimal output, which can be |  | ||||||
| overridden with `make V=1'; while running `./configure |  | ||||||
| --disable-silent-rules' sets the default to verbose, which can be |  | ||||||
| overridden with `make V=0'. |  | ||||||
|  |  | ||||||
| Particular systems |  | ||||||
| ================== |  | ||||||
|  |  | ||||||
|    On HP-UX, the default C compiler is not ANSI C compatible.  If GNU |  | ||||||
| CC is not installed, it is recommended to use the following options in |  | ||||||
| order to use an ANSI C compiler: |  | ||||||
|  |  | ||||||
|      ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" |  | ||||||
|  |  | ||||||
| and if that doesn't work, install pre-built binaries of GCC for HP-UX. |  | ||||||
|  |  | ||||||
|    HP-UX `make' updates targets which have the same time stamps as |  | ||||||
| their prerequisites, which makes it generally unusable when shipped |  | ||||||
| generated files such as `configure' are involved.  Use GNU `make' |  | ||||||
| instead. |  | ||||||
|  |  | ||||||
|    On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot |  | ||||||
| parse its `<wchar.h>' header file.  The option `-nodtk' can be used as |  | ||||||
| a workaround.  If GNU CC is not installed, it is therefore recommended |  | ||||||
| to try |  | ||||||
|  |  | ||||||
|      ./configure CC="cc" |  | ||||||
|  |  | ||||||
| and if that doesn't work, try |  | ||||||
|  |  | ||||||
|      ./configure CC="cc -nodtk" |  | ||||||
|  |  | ||||||
|    On Solaris, don't put `/usr/ucb' early in your `PATH'.  This |  | ||||||
| directory contains several dysfunctional programs; working variants of |  | ||||||
| these programs are available in `/usr/bin'.  So, if you need `/usr/ucb' |  | ||||||
| in your `PATH', put it _after_ `/usr/bin'. |  | ||||||
|  |  | ||||||
|    On Haiku, software installed for all users goes in `/boot/common', |  | ||||||
| not `/usr/local'.  It is recommended to use the following options: |  | ||||||
|  |  | ||||||
|      ./configure --prefix=/boot/common |  | ||||||
|  |  | ||||||
| Specifying the System Type |  | ||||||
| ========================== |  | ||||||
|  |  | ||||||
|    There may be some features `configure' cannot figure out |  | ||||||
| automatically, but needs to determine by the type of machine the package |  | ||||||
| will run on.  Usually, assuming the package is built to be run on the |  | ||||||
| _same_ architectures, `configure' can figure that out, but if it prints |  | ||||||
| a message saying it cannot guess the machine type, give it the |  | ||||||
| `--build=TYPE' option.  TYPE can either be a short name for the system |  | ||||||
| type, such as `sun4', or a canonical name which has the form: |  | ||||||
|  |  | ||||||
|      CPU-COMPANY-SYSTEM |  | ||||||
|  |  | ||||||
| where SYSTEM can have one of these forms: |  | ||||||
|  |  | ||||||
|      OS |  | ||||||
|      KERNEL-OS |  | ||||||
|  |  | ||||||
|    See the file `config.sub' for the possible values of each field.  If |  | ||||||
| `config.sub' isn't included in this package, then this package doesn't |  | ||||||
| need to know the machine type. |  | ||||||
|  |  | ||||||
|    If you are _building_ compiler tools for cross-compiling, you should |  | ||||||
| use the option `--target=TYPE' to select the type of system they will |  | ||||||
| produce code for. |  | ||||||
|  |  | ||||||
|    If you want to _use_ a cross compiler, that generates code for a |  | ||||||
| platform different from the build platform, you should specify the |  | ||||||
| "host" platform (i.e., that on which the generated programs will |  | ||||||
| eventually be run) with `--host=TYPE'. |  | ||||||
|  |  | ||||||
| Sharing Defaults |  | ||||||
| ================ |  | ||||||
|  |  | ||||||
|    If you want to set default values for `configure' scripts to share, |  | ||||||
| you can create a site shell script called `config.site' that gives |  | ||||||
| default values for variables like `CC', `cache_file', and `prefix'. |  | ||||||
| `configure' looks for `PREFIX/share/config.site' if it exists, then |  | ||||||
| `PREFIX/etc/config.site' if it exists.  Or, you can set the |  | ||||||
| `CONFIG_SITE' environment variable to the location of the site script. |  | ||||||
| A warning: not all `configure' scripts look for a site script. |  | ||||||
|  |  | ||||||
| Defining Variables |  | ||||||
| ================== |  | ||||||
|  |  | ||||||
|    Variables not defined in a site shell script can be set in the |  | ||||||
| environment passed to `configure'.  However, some packages may run |  | ||||||
| configure again during the build, and the customized values of these |  | ||||||
| variables may be lost.  In order to avoid this problem, you should set |  | ||||||
| them in the `configure' command line, using `VAR=value'.  For example: |  | ||||||
|  |  | ||||||
|      ./configure CC=/usr/local2/bin/gcc |  | ||||||
|  |  | ||||||
| causes the specified `gcc' to be used as the C compiler (unless it is |  | ||||||
| overridden in the site shell script). |  | ||||||
|  |  | ||||||
| Unfortunately, this technique does not work for `CONFIG_SHELL' due to |  | ||||||
| an Autoconf limitation.  Until the limitation is lifted, you can use |  | ||||||
| this workaround: |  | ||||||
|  |  | ||||||
|      CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash |  | ||||||
|  |  | ||||||
| `configure' Invocation |  | ||||||
| ====================== |  | ||||||
|  |  | ||||||
|    `configure' recognizes the following options to control how it |  | ||||||
| operates. |  | ||||||
|  |  | ||||||
| `--help' |  | ||||||
| `-h' |  | ||||||
|      Print a summary of all of the options to `configure', and exit. |  | ||||||
|  |  | ||||||
| `--help=short' |  | ||||||
| `--help=recursive' |  | ||||||
|      Print a summary of the options unique to this package's |  | ||||||
|      `configure', and exit.  The `short' variant lists options used |  | ||||||
|      only in the top level, while the `recursive' variant lists options |  | ||||||
|      also present in any nested packages. |  | ||||||
|  |  | ||||||
| `--version' |  | ||||||
| `-V' |  | ||||||
|      Print the version of Autoconf used to generate the `configure' |  | ||||||
|      script, and exit. |  | ||||||
|  |  | ||||||
| `--cache-file=FILE' |  | ||||||
|      Enable the cache: use and save the results of the tests in FILE, |  | ||||||
|      traditionally `config.cache'.  FILE defaults to `/dev/null' to |  | ||||||
|      disable caching. |  | ||||||
|  |  | ||||||
| `--config-cache' |  | ||||||
| `-C' |  | ||||||
|      Alias for `--cache-file=config.cache'. |  | ||||||
|  |  | ||||||
| `--quiet' |  | ||||||
| `--silent' |  | ||||||
| `-q' |  | ||||||
|      Do not print messages saying which checks are being made.  To |  | ||||||
|      suppress all normal output, redirect it to `/dev/null' (any error |  | ||||||
|      messages will still be shown). |  | ||||||
|  |  | ||||||
| `--srcdir=DIR' |  | ||||||
|      Look for the package's source code in directory DIR.  Usually |  | ||||||
|      `configure' can determine that directory automatically. |  | ||||||
|  |  | ||||||
| `--prefix=DIR' |  | ||||||
|      Use DIR as the installation prefix.  *note Installation Names:: |  | ||||||
|      for more details, including other options available for fine-tuning |  | ||||||
|      the installation locations. |  | ||||||
|  |  | ||||||
| `--no-create' |  | ||||||
| `-n' |  | ||||||
|      Run the configure checks, but stop before creating any output |  | ||||||
|      files. |  | ||||||
|  |  | ||||||
| `configure' also accepts some other, not widely useful, options.  Run |  | ||||||
| `configure --help' for more details. |  | ||||||
| @@ -5,16 +5,16 @@ | |||||||
| #   Run "brew install sdl_gfx".
 | #   Run "brew install sdl_gfx".
 | ||||||
| #   Run "brew install sdl_mixer".
 | #   Run "brew install sdl_mixer".
 | ||||||
| #   Run "brew install sdl_ttf".
 | #   Run "brew install sdl_ttf".
 | ||||||
| #   Run "make -f Makefile.simple" to build HyperRogue as ./hyperrogue.
 | #   Run "make" to build HyperRogue as ./hyperrogue.
 | ||||||
| #
 | #
 | ||||||
| # For MSYS2 and MinGW-w64:
 | # For MSYS2 and MinGW-w64:
 | ||||||
| #   You might need to run commands such as "pacman -S mingw-w64-x86_64-SDL"
 | #   You might need to run commands such as "pacman -S mingw-w64-x86_64-SDL"
 | ||||||
| #   to install SDL and other required libraries.
 | #   to install SDL and other required libraries.
 | ||||||
| #   Run "make -f Makefile.simple" to build HyperRogue as ./hyperrogue.exe.
 | #   Run "make" to build HyperRogue as ./hyperrogue.exe.
 | ||||||
| #
 | #
 | ||||||
| # For Ubuntu Linux:
 | # For Ubuntu Linux:
 | ||||||
| #   Run "sudo apt-get install libsdl-dev" to install SDL in /usr/local.
 | #   Run "sudo apt-get install libsdl-dev" to install SDL in /usr/local.
 | ||||||
| #   Run "make -f Makefile.simple" to build HyperRogue as ./hyperrogue.
 | #   Run "make" to build HyperRogue as ./hyperrogue.
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ifeq ($(OS),Windows_NT) | ifeq ($(OS),Windows_NT) | ||||||
							
								
								
									
										51
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								Makefile.am
									
									
									
									
									
								
							| @@ -1,51 +0,0 @@ | |||||||
| 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 |  | ||||||
							
								
								
									
										15
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,7 +1,6 @@ | |||||||
| # HyperRogue | # HyperRogue | ||||||
| <p align="right"> | <p align="right"> | ||||||
| <a href="https://travis-ci.org/zenorogue/hyperrogue/builds"> | <a href="https://travis-ci.org/zenorogue/hyperrogue/builds"> | ||||||
| <img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=autotools&label=autotools" alt="TravisCI badge"> |  | ||||||
| <img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=Makefile&label=make" alt="TravisCI badge"> | <img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=Makefile&label=make" alt="TravisCI badge"> | ||||||
| <img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=mymake&label=mymake" alt="TravisCI badge"> | <img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=mymake&label=mymake" alt="TravisCI badge"> | ||||||
| <img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=emscripten&label=web" alt="TravisCI badge"> | <img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=emscripten&label=web" alt="TravisCI badge"> | ||||||
| @@ -54,26 +53,16 @@ and visualizations (see [RogueViz](http://roguetemple.com/z/hyper/rogueviz.php)) | |||||||
|  |  | ||||||
| ## Technical information ## | ## Technical information ## | ||||||
|  |  | ||||||
| You should be able to compile on Ubuntu (or similar) with something like this (you need SDL, SDL_ttf, and SDL_gfx): | You should be able to compile on Linux, OSX, or MinGW with something like this (you need SDL, SDL_ttf, and SDL_gfx): | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| sudo apt-get install gcc libsdl1.2-dev libsdl-ttf2.0-dev libsdl-gfx1.2-dev | sudo apt-get install gcc libsdl1.2-dev libsdl-ttf2.0-dev libsdl-gfx1.2-dev | ||||||
| git clone https://github.com/zenorogue/hyperrogue.git hyperrogue | git clone https://github.com/zenorogue/hyperrogue.git hyperrogue | ||||||
| cd hyperrogue | cd hyperrogue | ||||||
| autoreconf -vi |  | ||||||
| ./configure |  | ||||||
| make | make | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| There is also a standalone Makefile for Linux, OSX, and MinGW. | The `mymake` program builds HyperRogue in parts. It takes longer than the method shown above, but when you change something, `mymake` will only recompile the changed file. | ||||||
|  |  | ||||||
| ``` |  | ||||||
| git clone https://github.com/zenorogue/hyperrogue.git |  | ||||||
| cd hyperrogue |  | ||||||
| make -f Makefile.simple |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| The `mymake` program builds HyperRogue in parts. It takes longer than the methods listed above, but when you change something, `mymake` will only recompile the changed file. |  | ||||||
| Additionally, it can be easily configured, e.g., to produce an optimized build, or to include addons (see `mymake.cpp` for some example invocations, and `devmods` for some example addons). | Additionally, it can be easily configured, e.g., to produce an optimized build, or to include addons (see `mymake.cpp` for some example invocations, and `devmods` for some example addons). | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
|   | |||||||
| @@ -1,5 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| autoreconf -vfi |  | ||||||
| ./configure "$@" |  | ||||||
| echo "Now, just do \"make install\" " |  | ||||||
|  |  | ||||||
| @@ -267,7 +267,7 @@ EX namespace bt { | |||||||
|                 return path(h, d, bd_up_left, {bd_right, bd_down}); |                 return path(h, d, bd_up_left, {bd_right, bd_down}); | ||||||
|                 } |                 } | ||||||
|               } |               } | ||||||
|           throw hr_wrong_dir(); |           throw hr_exception("wrong dir"); | ||||||
|           } |           } | ||||||
|         case gBinary4: { |         case gBinary4: { | ||||||
|           switch(d) { |           switch(d) { | ||||||
| @@ -286,7 +286,7 @@ EX namespace bt { | |||||||
|               else |               else | ||||||
|                 return path(h, 4, 2, {3, 4, 1}); |                 return path(h, 4, 2, {3, 4, 1}); | ||||||
|             default: |             default: | ||||||
|               throw hr_wrong_dir(); |               throw hr_exception("wrong dir"); | ||||||
|             } |             } | ||||||
|           } |           } | ||||||
|         case gTernary: { |         case gTernary: { | ||||||
| @@ -306,7 +306,7 @@ EX namespace bt { | |||||||
|               else |               else | ||||||
|                 return path(h, 5, 3, {4, 5, 2}); |                 return path(h, 5, 3, {4, 5, 2}); | ||||||
|             default: |             default: | ||||||
|               throw hr_wrong_dir(); |               throw hr_exception("wrong dir"); | ||||||
|             } |             } | ||||||
|           } |           } | ||||||
|         #if MAXMDIM >= 4          |         #if MAXMDIM >= 4          | ||||||
| @@ -342,7 +342,7 @@ EX namespace bt { | |||||||
|               else |               else | ||||||
|                 return path(h, 7, 6, {8, 7, parent->c.spin(8) ^ 2}); |                 return path(h, 7, 6, {8, 7, parent->c.spin(8) ^ 2}); | ||||||
|             default: |             default: | ||||||
|               throw hr_wrong_dir(); |               throw hr_exception("wrong dir"); | ||||||
|             } |             } | ||||||
|           } |           } | ||||||
|         case gHoroRec: { |         case gHoroRec: { | ||||||
| @@ -370,7 +370,7 @@ EX namespace bt { | |||||||
|               parent->cmove(6); |               parent->cmove(6); | ||||||
|               return path(h, 5, 3, {6, 2, parent->c.spin(6)}); |               return path(h, 5, 3, {6, 2, parent->c.spin(6)}); | ||||||
|             default: |             default: | ||||||
|               throw hr_wrong_dir(); |               throw hr_exception("wrong dir"); | ||||||
|             } |             } | ||||||
|           } |           } | ||||||
|         case gHoroTris: {             |         case gHoroTris: {             | ||||||
| @@ -387,7 +387,7 @@ EX namespace bt { | |||||||
|               else return path(h, d, d, {7, d, 9-d-s}); |               else return path(h, d, d, {7, d, 9-d-s}); | ||||||
|               } |               } | ||||||
|             default: |             default: | ||||||
|               throw hr_wrong_dir(); |               throw hr_exception("wrong dir"); | ||||||
|             } |             } | ||||||
|           } |           } | ||||||
|         case gHoroHex: { |         case gHoroHex: { | ||||||
| @@ -422,12 +422,12 @@ EX namespace bt { | |||||||
|               return path(h, 12, (z+1)%3+3, {13, z+6}); |               return path(h, 12, (z+1)%3+3, {13, z+6}); | ||||||
|               } |               } | ||||||
|             default: |             default: | ||||||
|               throw hr_wrong_dir(); |               throw hr_exception("wrong dir"); | ||||||
|             } |             } | ||||||
|           } |           } | ||||||
|         #endif |         #endif | ||||||
|         default:  |         default:  | ||||||
|           throw hr_wrong_geometry(); |           throw hr_exception("wrong geometry"); | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|  |  | ||||||
| @@ -436,7 +436,7 @@ EX namespace bt { | |||||||
|       else if(type_of(h) == 6) return bd_down; |       else if(type_of(h) == 6) return bd_down; | ||||||
|       else if(mapside(h) == 1) return bd_left; |       else if(mapside(h) == 1) return bd_left; | ||||||
|       else if(mapside(h) == -1) return bd_right; |       else if(mapside(h) == -1) return bd_right; | ||||||
|       else throw hr_wrong_dir(); |       else throw hr_exception("wrong dir"); | ||||||
|       } |       } | ||||||
|  |  | ||||||
|     transmatrix relative_matrix(heptagon *h2, heptagon *h1, const hyperpoint& hint) override { |     transmatrix relative_matrix(heptagon *h2, heptagon *h1, const hyperpoint& hint) override { | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								configure.ac
									
									
									
									
									
								
							| @@ -1,36 +0,0 @@ | |||||||
| AC_PREREQ([2.68]) |  | ||||||
| AC_INIT([hyperrogue], [10.4i]) |  | ||||||
| AC_LANG([C++]) |  | ||||||
| AM_INIT_AUTOMAKE([-Wall -Werror foreign]) |  | ||||||
| AC_CONFIG_SRCDIR([hyperpoint.cpp]) |  | ||||||
| AC_PROG_CXX |  | ||||||
| AC_PROG_CC |  | ||||||
|  |  | ||||||
| AC_CANONICAL_HOST |  | ||||||
| AM_CONDITIONAL(LINUX, test ["${host_os#*linux}" != "$host_os"]) |  | ||||||
| AM_CONDITIONAL(MAC, test ["${host_os#*darwin}" != "$host_os"]) |  | ||||||
| AM_CONDITIONAL(MINGW, test ["${host_os#*mingw}" != "$host_os"]) |  | ||||||
| AM_COND_IF(LINUX, AC_DEFINE([LINUX], [1])) |  | ||||||
| AM_COND_IF(MAC, AC_DEFINE([MAC], [1])) |  | ||||||
| AM_COND_IF(MINGW, AC_DEFINE([WINDOWS], [1])) |  | ||||||
|  |  | ||||||
| AC_CHECK_HEADERS([GL/gl.h OpenGL/gl.h], break, AC_MSG_RESULT([OpenGL header was not found])) |  | ||||||
| AC_CHECK_HEADERS([GL/glew.h], [], AC_MSG_RESULT([GLEW header was not found])) |  | ||||||
| AC_CHECK_HEADERS([png.h], [], AC_MSG_RESULT([png.h header was not found])) |  | ||||||
| AC_CHECK_HEADERS([SDL/SDL.h], [], AC_MSG_ERROR([SDL/SDL.h header was not found])) |  | ||||||
| AC_CHECK_HEADERS([SDL/SDL_gfxPrimitives.h], [], AC_MSG_RESULT([SDL/SDL_gfxPrimitives.h header was not found])) |  | ||||||
| AC_CHECK_HEADERS([SDL/SDL_mixer.h], [], AC_MSG_ERROR([SDL/SDL_mixer.h header was not found])) |  | ||||||
| AC_CHECK_HEADERS([SDL/SDL_ttf.h], [], AC_MSG_RESULT([SDL/SDL_ttf.h header was not found])) |  | ||||||
|  |  | ||||||
| AC_SEARCH_LIBS([glBegin], [GL opengl32], [], AC_MSG_RESULT([OpenGL library was not found])) |  | ||||||
| AC_SEARCH_LIBS([glewInit], [GLEW glew32], [], AC_MSG_RESULT([GLEW library was not found])) |  | ||||||
| AC_SEARCH_LIBS([png_create_info_struct], [png], [], AC_MSG_RESULT([png library was not found])) |  | ||||||
| AC_SEARCH_LIBS([SDL_SetVideoMode], [SDL], [], AC_MSG_ERROR([SDL library was not found])) |  | ||||||
| AC_SEARCH_LIBS([aacircleColor], [SDL_gfx], [], AC_MSG_RESULT([SDL_gfx library was not found])) |  | ||||||
| AC_SEARCH_LIBS([Mix_LoadMUS], [SDL_mixer], [], AC_MSG_ERROR([SDL_mixer library was not found])) |  | ||||||
| AC_SEARCH_LIBS([TTF_OpenFont], [SDL_ttf], [], AC_MSG_RESULT([SDL_ttf library was not found])) |  | ||||||
| AC_SEARCH_LIBS(pthread_create, [pthread], ,AC_MSG_ERROR([pthread library was not found])) |  | ||||||
| AC_SEARCH_LIBS(deflate, [z], ,AC_MSG_ERROR([zlib was not found]))         |  | ||||||
|  |  | ||||||
| AC_CONFIG_FILES([Makefile]) |  | ||||||
| AC_OUTPUT |  | ||||||
| @@ -786,7 +786,7 @@ EX namespace dialog { | |||||||
|       #endif |       #endif | ||||||
|       if(reaction) reaction(); |       if(reaction) reaction(); | ||||||
|       } |       } | ||||||
|     catch(hr_parse_exception&) {  |     catch(const hr_parse_exception&) {  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -288,7 +288,7 @@ EX namespace history { | |||||||
|       auto p = build_shortest_path(start, target); |       auto p = build_shortest_path(start, target); | ||||||
|       path_for_lineanimation = p; |       path_for_lineanimation = p; | ||||||
|       } |       } | ||||||
|     catch(hr_shortest_path_exception&) { |     catch(const hr_shortest_path_exception&) { | ||||||
|       addMessage("Could not build a path"); |       addMessage("Could not build a path"); | ||||||
|       return; |       return; | ||||||
|       } |       } | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								hyper.h
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								hyper.h
									
									
									
									
									
								
							| @@ -98,14 +98,12 @@ using std::asinh; | |||||||
| using std::acosh; | using std::acosh; | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| struct hr_exception: std::exception { hr_exception() {} }; | struct hr_exception : std::runtime_error { | ||||||
| struct hr_shortest_path_exception: hr_exception { }; |     explicit hr_exception() : std::runtime_error("hr_exception") {} | ||||||
|  |     explicit hr_exception(const std::string& s) : std::runtime_error(s.c_str()) {} | ||||||
|  | }; | ||||||
|  |  | ||||||
| struct hr_wrong_dir: hr_exception { }; | struct hr_shortest_path_exception { }; | ||||||
|  |  | ||||||
| struct hr_wrong_geometry: hr_exception { }; |  | ||||||
|  |  | ||||||
| struct hr_exception_str: std::exception { string s; hr_exception_str(const string& s) : s(s) {} const char* what() { return s.c_str(); }}; |  | ||||||
|  |  | ||||||
| // genus (in grammar) | // genus (in grammar) | ||||||
| #define GEN_M 0 | #define GEN_M 0 | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ mkdir -p app/src/main/res/raw/ | |||||||
| if [ ! -f ../autohdr.h ]; then | if [ ! -f ../autohdr.h ]; then | ||||||
|     echo "generating autohdr.h..." |     echo "generating autohdr.h..." | ||||||
|     LAST_PWD=$(pwd); cd .. |     LAST_PWD=$(pwd); cd .. | ||||||
|     make -f Makefile.simple autohdr.h |     make autohdr.h | ||||||
|     cd $LAST_PWD |     cd $LAST_PWD | ||||||
| fi | fi | ||||||
|  |  | ||||||
|   | |||||||
| @@ -145,7 +145,7 @@ string setdir = "../"; | |||||||
| int main(int argc, char **argv) { | int main(int argc, char **argv) { | ||||||
|   set_os(os); |   set_os(os); | ||||||
|   int retval = 0; // for storing return values of some function calls |   int retval = 0; // for storing return values of some function calls | ||||||
|   for(string fname: {"Makefile.loc", "Makefile.simple", "Makefile"}) |   for(string fname: {"Makefile.loc", "Makefile"}) | ||||||
|     if(file_exists(fname)) { |     if(file_exists(fname)) { | ||||||
|       retval = mysystem("make -f " + fname + " language-data.cpp autohdr.h"); |       retval = mysystem("make -f " + fname + " language-data.cpp autohdr.h"); | ||||||
|       if (retval) { printf("error during preparation!\n"); exit(retval); } |       if (retval) { printf("error during preparation!\n"); exit(retval); } | ||||||
|   | |||||||
| @@ -427,11 +427,11 @@ EX namespace sn { | |||||||
|           case 8: |           case 8: | ||||||
|             return xpush(bw*(4.5-j)) * zpush(-1) * ypush(bw*(i-7)); |             return xpush(bw*(4.5-j)) * zpush(-1) * ypush(bw*(i-7)); | ||||||
|           default: |           default: | ||||||
|             throw hr_wrong_dir(); |             throw hr_exception("wrong dir"); | ||||||
|           } |           } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|       default: throw hr_wrong_geometry(); |       default: throw hr_exception("wrong geometry"); | ||||||
|       } |       } | ||||||
|       } |       } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -503,12 +503,12 @@ EX void generate_track() { | |||||||
|     } |     } | ||||||
|   else find_track(s, 0, length);     |   else find_track(s, 0, length);     | ||||||
|     } |     } | ||||||
|   catch(hr_track_failure&) { |   catch(const hr_track_failure&) { | ||||||
|     race_try++; |     race_try++; | ||||||
|     gamegen_failure = true; |     gamegen_failure = true; | ||||||
|     return; |     return; | ||||||
|     } |     } | ||||||
|   catch(hr_shortest_path_exception&) { |   catch(const hr_shortest_path_exception&) { | ||||||
|     addMessage("error: could not build path"); |     addMessage("error: could not build path"); | ||||||
|     gamegen_failure = true; |     gamegen_failure = true; | ||||||
|     racing::on = false; |     racing::on = false; | ||||||
|   | |||||||
| @@ -402,7 +402,7 @@ struct hrmap_notknot : hrmap { | |||||||
|     auto d1 = u->where->c.spin(d); |     auto d1 = u->where->c.spin(d); | ||||||
|     auto z = x->zebraval; |     auto z = x->zebraval; | ||||||
|     if(z & 6) { |     if(z & 6) { | ||||||
|       throw hr_exception_str("zebraval failure!"); |       throw hr_exception("zebraval failure!"); | ||||||
|       exit(3); |       exit(3); | ||||||
|       x->zebraval = 0; |       x->zebraval = 0; | ||||||
|       } |       } | ||||||
| @@ -418,7 +418,7 @@ struct hrmap_notknot : hrmap { | |||||||
|    |    | ||||||
|   void add_to_unify(ucover *a, ucover *b) { |   void add_to_unify(ucover *a, ucover *b) { | ||||||
|     if(a->where != b->where) |     if(a->where != b->where) | ||||||
|       throw hr_exception_str("unification error"); |       throw hr_exception("unification error"); | ||||||
|     unify.emplace_back(a, b); |     unify.emplace_back(a, b); | ||||||
|     }; |     }; | ||||||
|    |    | ||||||
| @@ -641,7 +641,7 @@ struct hrmap_notknot : hrmap { | |||||||
|     if(u->where == all[0]->where) |     if(u->where == all[0]->where) | ||||||
|       for(auto& lo: to_unloop)         |       for(auto& lo: to_unloop)         | ||||||
|         if(!make_loop(u, 1, lo)) |         if(!make_loop(u, 1, lo)) | ||||||
|           throw hr_exception_str("given loop goes through a wall"); |           throw hr_exception("given loop goes through a wall"); | ||||||
|      |      | ||||||
|     if(loop_any && u->where == all[0]->where) { |     if(loop_any && u->where == all[0]->where) { | ||||||
|       auto us = all[0]; |       auto us = all[0]; | ||||||
| @@ -685,7 +685,7 @@ struct hrmap_notknot : hrmap { | |||||||
|     all[0]->parentdir = -1; |     all[0]->parentdir = -1; | ||||||
|  |  | ||||||
|     if(all[0]->where->zebraval & 1)  |     if(all[0]->where->zebraval & 1)  | ||||||
|       throw hr_exception_str("error: starting inside a wall"); |       throw hr_exception("error: starting inside a wall"); | ||||||
|      |      | ||||||
|     remove_marked_walls = false; |     remove_marked_walls = false; | ||||||
|     bool first = true; |     bool first = true; | ||||||
| @@ -712,7 +712,7 @@ struct hrmap_notknot : hrmap { | |||||||
|  |  | ||||||
|         uf->state |= 2; uf->merged_into = ut; |         uf->state |= 2; uf->merged_into = ut; | ||||||
|         if(uf->where != ut->where) |         if(uf->where != ut->where) | ||||||
|           throw hr_exception_str("where confusion"); |           throw hr_exception("where confusion"); | ||||||
|         for(int d=0; d<uf->where->type; d++) { |         for(int d=0; d<uf->where->type; d++) { | ||||||
|           cmov(uf->where, d); |           cmov(uf->where, d); | ||||||
|           auto d1 = uf->where->c.spin(d); |           auto d1 = uf->where->c.spin(d); | ||||||
| @@ -881,9 +881,9 @@ struct hrmap_notknot : hrmap { | |||||||
|         cmov(u->where, d); |         cmov(u->where, d); | ||||||
|         auto d1 = u->where->c.spin(d); |         auto d1 = u->where->c.spin(d); | ||||||
|         if(u->ptr[d] && u->ptr[d]->result == nullptr) |         if(u->ptr[d] && u->ptr[d]->result == nullptr) | ||||||
|           throw hr_exception_str(lalign(0, "connection to null in state ", u->ptr[d]->state, " from state ", u->state, " i=", i, " .. ", u->ptr[d]->index)); |           throw hr_exception(lalign(0, "connection to null in state ", u->ptr[d]->state, " from state ", u->state, " i=", i, " .. ", u->ptr[d]->index)); | ||||||
|         if(u->ptr[d] && u->ptr[d]->ptr[d1] != u) |         if(u->ptr[d] && u->ptr[d]->ptr[d1] != u) | ||||||
|           throw hr_exception_str("wrong connection"); |           throw hr_exception("wrong connection"); | ||||||
|         if(u->ptr[d]) |         if(u->ptr[d]) | ||||||
|           u->result->c.connect(d, u->ptr[d]->result, d1, false);           |           u->result->c.connect(d, u->ptr[d]->result, d1, false);           | ||||||
|         else |         else | ||||||
| @@ -973,8 +973,8 @@ struct hrmap_notknot : hrmap { | |||||||
|         ray::volumetric::vmap[c] = 0x00000001; |         ray::volumetric::vmap[c] = 0x00000001; | ||||||
|       } |       } | ||||||
|      |      | ||||||
|     } catch(hr_exception_str& s) { |     } catch(const hr_exception& s) { | ||||||
|       println(hlog, "exception: ", s.s); |       println(hlog, "exception: ", s.what()); | ||||||
|       throw; |       throw; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								rug.cpp
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								rug.cpp
									
									
									
									
									
								
							| @@ -600,7 +600,7 @@ EX void buildRug() { | |||||||
|       else if(v > w && v > w2) |       else if(v > w && v > w2) | ||||||
|         addTriangle(v, w, w2); |         addTriangle(v, w, w2); | ||||||
|       } |       } | ||||||
|     catch(out_of_range&) {} |     catch(const std::out_of_range&) {} | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   println(hlog, "vertices = ", isize(points), " triangles= ", isize(triangles)); |   println(hlog, "vertices = ", isize(points), " triangles= ", isize(triangles)); | ||||||
| @@ -1218,7 +1218,7 @@ EX void init_model() { | |||||||
|         "Use a different projection to fix this." |         "Use a different projection to fix this." | ||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
|   catch(rug_exception) { |   catch(const rug_exception&) { | ||||||
|     close(); |     close(); | ||||||
|     clear_model(); |     clear_model(); | ||||||
|     } |     } | ||||||
| @@ -1353,7 +1353,7 @@ EX void actDraw() { | |||||||
|     perform_finger();     |     perform_finger();     | ||||||
|   #endif |   #endif | ||||||
|     } |     } | ||||||
|   catch(rug_exception) { |   catch(const rug_exception&) { | ||||||
|     rug::close(); |     rug::close(); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue