Commit graph

164 commits

Author SHA1 Message Date
James R
d5c08ac034 Backport 2021 SRB2 makefile overhaul
This is a squashed commit of the following commits from
upstream:

James R <justsomejames2@gmail.com> on 2021-05-01
Commit 44d217807f71d15bd7ca69dad226458e7060ccab
> Collect makefiles

James R <justsomejames2@gmail.com> on 2021-05-04
Commit f637e28d0c1877c44acd7b01f7130625d5ea4099
> Remove bin, objs and dep directories

James R <justsomejames2@gmail.com> on 2021-05-02
Commit b31056c7d977fe3c2a5e0637589fd9521f1f6c04
> Rewrite Makefile to be modular as well as more automated
>
> Some key points for programmers:
> - Source code files are mostly listed in a 'Sourcefile'.
>   So you no longer directly edit the object list. There
>   can be multiple Sourcefiles and they can even live in
>   subdirectories--the directory name will be prepended to
>   every filename in the list. Of course, the Makefile
>   still needs to be edited to read from each Sourcefile.
> - Different rules are no longer required for source code
>   files that live in subdirectories (such as sdl/ or
>   hardware/). Subdirectories Just Work so go ham!
>
> In addition to those points, another important change is
> that the bin directory is no longer divided into platform
> subdirectories (Linux64, Mingw, etc). Executables now go
> directly into bin. If you use DEBUGMODE or target 64-bit,
> then subdirectories for 'debug' and '64' will be made
> though.
>
> Oh by the way, I don't think make clean actually removed
> files before on Windows. It should now. I also fixed as
> many little inconsistencies like that as I noticed.
>
> And now just an overview of the technical aspects that
> shouldn't affect anyone who doesn't REALLY care about the
> Makefile...
>
> objs and dep directories have been moved to a make
> directory. Makefile.cfg and its variants have been moved
> out of their various subdirectories to src/Makefile.d
> make distclean removes the bin and make directories
> entirely, but make clean and cleandep still only affect
> the current build target.
>
> When I say automation, I mean that a lot of copy pasting
> in the Makefile has been reduced.

James R <justsomejames2@gmail.com> on 2021-05-04
Commit 53d1cbe8264196e46911c86bc4be13d44aa35dfe
> Appveyor: update executable directory

James R <justsomejames2@gmail.com> on 2021-05-04
Commit 888073d64d1885cae0ad8b5d54bfec31e9793e0a
> Fix make clean printing header

James R <justsomejames2@gmail.com> on 2021-05-04
Commit 3d7205d4942d1e1b2627fdf5acf9d9c82437a97b
> Fix minor errors with Windows ECHO, DEL, MD
>
> - Quotes were not removed by ECHO.
> - DEL would print an error on nonexistent file.
> - MD would do this plus return a nonzero exit code.

James R <justsomejames2@gmail.com> on 2021-05-05
Commit f9813844e7f0dfa6229062b1ebd83e4e8150c120
> Update CMakeLists.txt to use Sourcefiles
>
> This establishes (near) parity of source code file lists
> between the Makefile and CMakeLists.txt
>
> To make that change I messed around CMakeLists.txt a bit.
> It now uses target_sources and target_compile_definitions.
> I also removed some MSVC stuff since we don't actually
> care about MSVC--it made things easier.
>
> CMake minimum version 3.0 -> 3.13 for target_sources.

James R <justsomejames2@gmail.com> on 2021-05-05
Commit ec8b63d6759f0c124693ea6d5a521e8d82efd566
> Makefile: remove last of unused flags

James R <justsomejames2@gmail.com> on 2021-05-07
Commit c06817d0085ee77b0027917bca91a24e60c7deba
> Makefile: fix mingw/64 swapped with 32-bit

James R <justsomejames2@gmail.com> on 2021-05-07
Commit 9e7d80c2c44199126fa451c59fca0f98d23ad14d
> Makefile: suppress DEL error

James R <justsomejames2@gmail.com> on 2021-05-07
Commit 87afa7655a71539c7cbc7db12df18c4253187fbc
> CMake: fix ASM compile
>
> - target_sources from correct directory
> - enable_language must be used in add_executable directory

James R <justsomejames2@gmail.com> on 2021-05-08
Commit 210c9419e4bddd1fe8e9be7cb66de31119fa0d68
> Ignore -Wtrigraphs

James R <justsomejames2@gmail.com> on 2021-06-16
Commit 3a044e71cc7cf6c80d9836189511c1a58c108370
> Disable EXE disassembly and compression by default
>
> NOOBJDUMP=1 and NOUPX=1 have been removed. Make 'dump'
> target to disassemble. UPX=upx to compress executable.
>
> Setting UPX used to cause it to fail. That has been fixed.

James R <justsomejames2@gmail.com> on 2021-06-16
Commit c142b3241ddb8f1ea9b5090d20dffa43a17129ab
> Makefile: alert full path of final executable
>
> With added textual contrast.

James R <justsomejames2@gmail.com> on 2021-06-16
Commit b04c79d8a7ba4ae8f888ab94d394b6714699e107
> Say 'at'

James R <justsomejames2@gmail.com> on 2021-06-21
Commit 2d7a8c3c571bcc5335437e9db074c75af00408ce
> Makefile: use shell commands to read in Sourcefile
>
> File function is not supported < Make 4.2.

James R <justsomejames2@gmail.com> on 2021-06-21
Commit d5146945a69ebf30e6fc1fbb64558e456e0b7459
> Makefile: don't automatically set WINDOWSHELL unless PATH matches Windows norms
>
> This is for MSYS2, which requires unix shell commands.

James R <justsomejames2@gmail.com> on 2021-06-22
Commit 5f4d7e3c5b013afe03ae2a441c82ad79bae7c66c
> Makefile: fail if old build directories exist
>
> After a checkout from before revision, old directories
> such as bin/Linux64 only remain if untracked files exist
> within. This may be confusing to the user. They may even
> use an outdated executable if it is one of those untracked
> files.

James R <justsomejames2@gmail.com> on 2021-06-22
Commit c3ad5de912fccfdd64c510f5684883afceaa7d36
> Makefile: let variables be defined on Make line
>
> If a variable is defined as in 'make CC=gcc-10', then that
> definition overrides anything other definition in the
> Makefile.

James R <justsomejames2@gmail.com> on 2021-06-22
Commit ed85e994a46ace07cf022b38a9abac1698a8667e
> Remove misplaced parentheses

James R <justsomejames2@gmail.com> on 2021-06-29
Commit c1ecfa306f6a0b168d4f6cbc3224ebebd4deec51
> Makefile: 'dep' not 'deps'

James R <justsomejames2@gmail.com> on 2021-06-29
Commit 6c03f9b5b3590e01773f05bc1c31cc67a2d88fc2
> fuck

James R <justsomejames2@gmail.com> on 2021-06-29
Commit abdf5c101cbe80657f210c0b90800e2c4c6f0c05
> Makefile: report SHELL

James R <justsomejames2@gmail.com> on 2021-06-29
Commit 22ab611daa17bd23225f3afeeba39147c0d0fe17
> Makefile: do not automatically set WINDOWSHELL
>
> According to this answer--
> https://stackoverflow.com/a/45952425
> --Make will always prefer a unix shell, even on Windows,
> if one can be found in Path. So we can't check PATH to
> determine if it's a Windows shell... this is just too much
> bother.

James R <justsomejames2@gmail.com> on 2021-06-29
Commit f79e0ee540564fcec5da7c0dc4006906492a7f30
> Appveyor: remove 64-bit target

James R <justsomejames2@gmail.com> on 2021-06-29
Commit faee657572f23cd6f8b68c077873e01c4278414e
> Appveyor: update for new Makefile

James R <justsomejames2@gmail.com> on 2021-06-29
Commit 44b82dea58612e6f07830647e2b08555f54a7caa
> Appveyor: remove redundant CFLAGS
>
> Also changed -Wno-error=implicit-fallthrough to
> -Wno-implicit-fallthrough. For some reason Appveyor's
> version of GCC is triggering these warnings despite the
> comments, so just shut it up.

James R <justsomejames2@gmail.com> on 2021-06-29
Commit db919accd22350c087c1fd0e5122d8e490e2f171
> Appveyor: suppress real time file names

James R <justsomejames2@gmail.com> on 2021-07-12
Commit 58fa44e8dc0444eecbe701f31872fad9fa563a6a
> CMP0115

SteelT <steeltitanium1@gmail.com> on 2021-07-16
Commit 71f905f95bd4fe62dbca87208cf71b7309f12de1
> Fix gme support being effectively disabled
>
> I found this easier than trying to adjust the makefile, as it uses the same thing to automatically generate the various NO* compile options.

James R <justsomejames2@gmail.com> on 2021-08-14
Commit 824b1ab28cdddfd1c018454a9af14dabaab49fcd
> Makefile: use full stem in dependency generation
>
> Previously took only the filename, so the directory
> component was stripped. This broke dependencies for
> basically every file.

GoldenTails <milestailsprower101n2@gmail.com> on 2021-08-28
Commit 1a8ec7975c20e1d652cbbdb7a9e366192e41c05f
> Makefile: Improve gcc detection
>
> Wasn't working for me until I fixed it.
> Turns out gcc really doesn't like giving its name out.
> Most of the time it reads argv[0].
2021-11-25 03:56:23 -08:00
Sally Coolatta
9afadccefa Fix duplicates being added to .travis.yml & debain-template/control 2020-08-09 21:32:55 -04:00
Sally Coolatta
e296e1309a YAY, round 2 2020-08-09 21:02:56 -04:00
Sally Coolatta
2682c7438a Merge appveyor.yml 2020-08-09 20:49:04 -04:00
Steel Titanium
b53e6e834d Update version number 2020-07-10 17:29:03 -04:00
Alam Ed Arias
ac69b100b0 Merge branch 'master' into next 2020-07-10 09:48:27 -04:00
Alam Ed Arias
107a1bae73 let stop uploading 2 artifacts 2020-07-10 09:47:24 -04:00
Steel Titanium
d53d65b798 Update the version number 2020-07-06 21:29:02 -04:00
Sally Coolatta
63917ffccc The start of the scary 2.2 merge
All conflicts are left in-tact. We should be collaborating on solving these files one at a time.
2020-05-29 13:43:38 -04:00
Sally Coolatta
15d18640de Merge remote-tracking branch 'public/master' into merge-12 2020-05-12 03:16:14 -04:00
James R
bd52a32eb6 Disable 64-bit Appveyor builds 2020-05-11 18:55:20 -07:00
James R
3e2c7f42a1 Name the archive like the EXE
(cherry picked from commit 4304fe91e65845e3887935de046876b6313af9c9)
2020-05-11 18:45:46 -07:00
James R
72c4eedd4f Windows is dumb so no colon
srb2win-jameds-appveyor-exename-b1d931d47.exe

(cherry picked from commit 70cf119a8402607116b2f8fbb79028a2de0e8d96)
2020-05-11 18:45:46 -07:00
James R
ae7eb4bd57 Check if this actually is a PR before using those variables
(cherry picked from commit e082553f6d3a90baf97e056ab6790ce136f502d0)
2020-05-11 18:45:45 -07:00
James R
9b6410e86f I promise I know what I'm doing
(cherry picked from commit 6337932190d68d6f825f4f5dd47a6f3655c88f16)
2020-05-11 18:45:45 -07:00
James R
6265bd53fb Use the pull request repo, branch and commit
srb2win-jameds:appveyor-exename-b1d931d47.exe
(cherry picked from commit ef2febe1e01bc7c93f30d2063bfd754b1a79dd3a)
2020-05-11 18:45:45 -07:00
James R
959674c533 Well I'm an idiot
(cherry picked from commit b1d931d471bcf2ec9a40f6e7e52518807c5fd14b)
2020-05-11 18:45:45 -07:00
James R
98d6708b29 Put the abbreviated commit hash in the EXENAME for AppVeyor
srb2win-master-a6d49eaaa.exe

(cherry picked from commit d3315ae03c57296bfb5a7f9f5959492bdb7de24c)
2020-05-11 18:45:44 -07:00
James R
15193cb2b3 Put branch name and commit hash in EXENAME for AppVeyor builds
srb2win-master-a6d49eaaa70be5f88c26623c7b4a2fa5a770341e.exe

(cherry picked from commit c3f42859882e6a1a789668d9b78d1310dd5e7312)
2020-05-11 18:45:44 -07:00
James R
069e3589c2 Use GCC 8.1 for x86_64
(cherry picked from commit 658b8dcfa95935bbaef92c15476ad57ecc96950f)
2020-05-11 18:45:43 -07:00
James R
32ef2ec1b6 Remove Direct Draw from AppVeyor config
(cherry picked from commit 945f50c2736ee64734dcc94f36ff7dff4085c8e2)
2020-05-11 18:45:42 -07:00
Alam Ed Arias
06448c15cf Appveyor: other way around, the Mingw32 is at 9.1
(cherry picked from commit 0c2b3002944b28cd823326fb5febc71fad120ca0)
2020-05-11 18:43:25 -07:00
Alam Ed Arias
85ae5251fc Appveyor: the Mingw64 is 9.1, the Mingw32 is still 7.3
(cherry picked from commit 33c0b825a7cdfd6538f388748dba334191fbb9ee)
2020-05-11 18:43:25 -07:00
Alam Ed Arias
2a116ac847 Tested to be compile with Mingw64 9.1.0
(cherry picked from commit 5a79a446dfc3632de3e27567afd65d9782510739)
2020-05-11 18:43:24 -07:00
James R
ffd88746da Update version names, SUBVERSION, MODVERSION 2020-05-11 14:41:36 -07:00
Monster Iestyn
f218920395 Update version number to 2.2.3 in all the usual files, also updated MODVERSION 2020-05-10 16:02:23 +01:00
Wolfy
146164f1b7 Make the deployer use the new version format 2020-04-18 23:18:39 -05:00
Wolfy
30f5e928dd Prep stuff
pending asset hash changes
2020-04-12 20:48:11 -05:00
Steel Titanium
c7778af7d6 Update version number to 2.2.2 2020-02-22 16:37:13 -05:00
Monster Iestyn
0a4a879b96 Updated version number to 2.2.1, increment MODVERSION.
Also updated CMakeLists.txt, appveyor.yml and this one Xcode project file as usual
2020-02-05 19:55:40 +00:00
James R
596ff92e69 Name the archive like the EXE 2020-01-23 21:06:48 -08:00
James R
f3ffc2f82b Windows is dumb so no colon
srb2win-jameds-appveyor-exename-0a41f77a2.exe
2020-01-23 20:35:53 -08:00
James R
98297f3de2 Check if this actually is a PR before using those variables 2020-01-23 20:34:26 -08:00
James R
56abe74c18 I promise I know what I'm doing 2020-01-23 20:13:57 -08:00
James R
745f4b6492 Use the pull request repo, branch and commit
srb2win-jameds:appveyor-exename-0a41f77a2.exe
2020-01-23 19:58:26 -08:00
James R
0a41f77a22 Well I'm an idiot 2020-01-23 18:55:25 -08:00
James R
a5d62ef3bb Put the abbreviated commit hash in the EXENAME for AppVeyor
srb2win-master-003f3769d.exe
2020-01-23 18:10:31 -08:00
James R
12da266baa Put branch name and commit hash in EXENAME for AppVeyor builds
srb2win-master-003f3769dfc531eae0071c07e45803c17fd53460.exe
2020-01-23 18:01:59 -08:00
James R
9f68fa0798 Merge branch 'appveyor-gcc-8.1' into 'master'
Use GCC 8.1 for AppVeyor 64-bit builds

See merge request STJr/SRB2!624
2020-01-05 17:12:06 -05:00
James R
22c6440523 Use GCC 8.1 for x86_64 2020-01-02 15:45:13 -08:00
James R
3762b638c7 Remove Direct Draw from AppVeyor config 2020-01-02 14:58:09 -08:00
Alam Ed Arias
37a264c30e Merge remote-tracking branch 'origin/master' into srb2-release-220-deployer 2019-12-19 10:24:04 -05:00
Steel Titanium
ab50f1255d appveyor: Forgot to change version to 2.2.0 2019-12-10 12:53:15 -05:00
mazmazz
126dbc4a82 Deployer fixes for 2.2.0 2019-12-07 13:56:05 -05:00
Monster Iestyn
a20079e410 Update version to 2.1.25 2019-08-16 20:14:01 +01:00
Alam Ed Arias
cb5b7a5555 Appveyor: other way around, the Mingw32 is at 9.1 2019-08-08 23:05:24 -04:00
Alam Ed Arias
4d1c2b4de0 Appveyor: the Mingw64 is 9.1, the Mingw32 is still 7.3 2019-08-08 23:02:03 -04:00
Alam Ed Arias
5c0912bab1 Tested to be compile with Mingw64 9.1.0 2019-08-08 21:25:46 -04:00
Monster Iestyn
474b70aa69 Update version to 2.1.24 2019-06-07 15:48:33 +01:00
TehRealSalt
4f13f8b98e Change version num to v2, disable 1.0.x demo compatiblity 2019-05-29 22:29:06 -04:00