Commit graph

374 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
9d7ec0ab8f Merge SRB2 next
Probably doesn't compile yet, but I got rid of all of the conflicts for anyone who wants to take a stab at it.
2021-02-27 05:18:36 -05:00
Sally Coolatta
1f082f15e6 Merge SRB2 master 2021-02-27 02:25:14 -05:00
Sally Coolatta
d63b428565 Merge Kart-Public next 2021-02-27 02:16:21 -05:00
Jaime Ita Passos
c1beb1f384 Revert accidental push 2021-02-25 20:17:27 -03:00
Jaime Ita Passos
6d17b48838 [Meta] Change branding 2021-02-25 19:49:34 -03:00
Jaime Ita Passos
7e28b7d3e9 OpenGL backend: Manage uploaded GPU textures with an internal list
Indirectly fixes the game doing whatever after freeing a patch.
This commit implements a FTextureInfo struct type, instead of it being a typedef to the GLMipmap_s struct type.
2021-01-27 17:48:57 -03:00
himie
742a665481 Add large address aware flag
This allows the final exe to use more than 2gb of RAM in a 64-bit system
which should get rid of most out of memory errors on 32-bit builds
2021-01-25 17:00:09 -06:00
James R
887f4a0919 Merge branch 'master' into next 2020-12-12 02:38:51 -08:00
James R
d6ed2f4ac8 Merge branch 'spritestuff2-fixes' into 'next'
Some fixes for spritestuff2

See merge request STJr/SRB2!1264
2020-11-25 19:26:49 -05:00
James R
e4c7516608 Merge branch 'master' into no-dd-make 2020-11-22 15:29:37 -08:00
James R
4f39497feb Merge branch 'master' into next 2020-11-22 15:23:12 -08:00
Jaime Ita Passos
b8a13e6006 Change how texture deletion works in OpenGL 2020-11-22 17:03:04 -03:00
James R
cb1326b0eb Remove Direct Draw from the Makefiles
MINGW/MINGW64 implies SDL.
2020-11-21 15:19:54 -08:00
Nev3r
19b11a8c75 Remove direct definition for D__USE_MINGW_ANSI_STDIO, as the latest standards consider this to be deprecated. 2020-11-13 11:33:27 +01:00
Sally Coolatta
7c2bd0d1c2 Merge remote-tracking branch 'srb2/next' into the-scary-22-merge 2020-10-24 20:50:58 -04:00
Sally Coolatta
9b6aa946ea Merge remote-tracking branch 'srb2/master' into the-scary-22-merge 2020-10-24 19:28:06 -04:00
Jaime Passos
e23929a899 Refactor patch rotation 2020-10-10 18:43:26 -03:00
Jaime Passos
b44837324f Merge branch 'next' into patch-stuff-again-2 2020-10-10 17:01:10 -03:00
James R
6363162826 Merge branch 'sanity-meter-empty' into 'next'
Replace cvar initializers with a macro

See merge request STJr/SRB2!1178
2020-10-08 22:02:25 -04:00
James R
b7c4a82a0f Replace C90's junk with a modest macro 2020-10-06 23:04:23 -07:00
Steel Titanium
db0757aa69 Provide a default exe manifest 2020-10-03 19:53:59 -04:00
James R
92cd4fd8ba Update Srb2win.rc 2020-10-02 16:11:39 -07:00
Steel Titanium
ca6689c8a0 Fix quotes appearing in product version string 2020-09-25 18:55:37 -04:00
Sally Coolatta
b5fcd74ef9 Merge master
Slopes in a few maps are really broken ... think it's anchors, I'm gonna leave that to jart :V
2020-09-25 12:00:50 -04:00
James R
ef108cbb36 Merge remote-tracking branch 'pub/next' 2020-09-20 14:07:54 -07:00
Steel Titanium
e656a7d92d Link with exchndl, instead of dynamically loading it.
It caused problems with crash reports not being made if the current working directory gets changed. Not even recommended anymore per the drmingw readme
https://github.com/jrfonseca/drmingw#exchndl
2020-09-17 15:59:02 -04:00
SteelT
6a168ac5e9 Merge branch 'pictureformats' into 'next'
PNG conversion refactoring

See merge request STJr/SRB2!675
2020-09-10 15:58:18 -04:00
James R
605ea2c668 Update version to 2.2.7 RC1 2020-09-01 15:38:51 -07:00
James R
7c1f73ed71 NO_DISCORDRPC to disable rich presence on Windows 2020-08-30 19:11:30 -07:00
Sally Coolatta
a92ec01f43 Update win 32 bit libraries, implement win 64 bit libraries 2020-08-23 05:47:55 -04:00
Sally Coolatta
632df264a3 Merge remote-tracking branch 'public/next' into discord-rpc-support 2020-08-16 20:57:31 -04:00
Sally Coolatta
30144d5d06 Things to get it to run
Build is still MASSIVELY broken, you can't even get into a level, still investigating
2020-08-15 20:09:36 -04:00
Jaime Passos
7bc4af41ab Merge branch 'pictureformats' into patch-stuff-again-2 2020-08-15 20:48:28 -03:00
Sally Coolatta
172ffea590 update srb2win.rc, D_ConvertVersionNumbers uses kart's 2 number style instead of vanilla's 3 number style 2020-08-15 11:54:50 -04:00
Jaime Passos
cb3660331a Refactor renderer switching 2020-08-14 22:27:16 -03:00
Sally Coolatta
f9ca40e673 Merge branch 'master' into the-scary-22-merge 2020-08-12 20:59:09 -04:00
SteelT
5271db81b7 Merge win32/win_dll.c 2020-08-10 15:41:49 -04:00
SteelT
7ad5057fe9 Merge win32/win_vid.c 2020-08-10 15:41:39 -04:00
SteelT
9759c3666b Merge win32/Srb2win-vc10.vcxproj.filters 2020-08-10 13:06:14 -04:00
Sally Coolatta
e296e1309a YAY, round 2 2020-08-09 21:02:56 -04:00
James R
66d36d4fdf Merge branch 'opengl-skydome-fixes' into 'next'
Move the sky dome code out of r_opengl.c, fix issues with shaders

See merge request STJr/SRB2!1071
2020-08-09 20:45:01 -04:00
Jaime Passos
a7f3dd7eff Refactor patch loading 2020-08-08 05:16:47 -03:00
SteelT
af9e73cef0 Easy conflicts - src/win32/win_dll.c and src/win32/win_vid.c 2020-08-06 18:10:16 -04:00
SteelT
a470716f48 Merge src/win32/Srb2win-vc10.vcxproj 2020-08-06 01:12:19 -04:00
Jaime Passos
10189ecdc0 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2 into pictureformats 2020-07-21 22:25:00 -03:00
Jaime Passos
16c4ba672a Move the sky dome code out of r_opengl.c, fix issues with shaders 2020-07-17 02:48:05 -03:00
James R
47719474ef Merge remote-tracking branch 'origin/next' into http-mserv 2020-07-13 08:58:43 -07:00
James R
e09a430804 Merge remote-tracking branch 'origin/next' into remove-glide-2 2020-07-12 16:05:15 -07:00
James R
84d9aa93c7 Merge remote-tracking branch 'origin/next' into http-mserv 2020-07-11 17:41:46 -07:00