Commit graph

10602 commits

Author SHA1 Message Date
SteelT
c55e973364 MSYS2: Don't compile with dynamic base
Resolves #671
2021-11-03 17:16:46 -04:00
SteelT
a822de5ffc Merge branch 'fix-gme-disabled' into 'master'
Fix gme support being effectively disabled

See merge request STJr/SRB2!1586
2021-09-11 15:05:34 +00:00
James R
1af05afb0e Merge branch 'better-gcc-check' into 'master'
Makefile: Improve gcc detection

See merge request STJr/SRB2!1608
2021-09-04 00:43:16 +00:00
James R
8e0831a183 Fix unused variable warning under NOPNG 2021-09-03 17:15:36 -07:00
GoldenTails
1a8ec7975c 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-08-28 15:39:34 -05:00
James R
824b1ab28c 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.
2021-08-14 15:29:21 -07:00
SteelT
71f905f95b 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.
2021-07-16 15:26:09 -04:00
James R
58fa44e8dc CMP0115 2021-07-12 03:50:44 -07:00
James R
22ab611daa 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.
2021-06-29 16:23:27 -07:00
James R
abdf5c101c Makefile: report SHELL 2021-06-29 16:22:46 -07:00
James R
6c03f9b5b3 fuck 2021-06-29 14:42:40 -07:00
James R
c1ecfa306f Makefile: 'dep' not 'deps' 2021-06-29 13:58:38 -07:00
James R
ed85e994a4 Remove misplaced parentheses 2021-06-22 15:49:59 -07:00
James R
c3ad5de912 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.
2021-06-22 15:47:48 -07:00
James R
5f4d7e3c5b 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.
2021-06-22 15:14:42 -07:00
James R
d5146945a6 Makefile: don't automatically set WINDOWSHELL unless PATH matches Windows norms
This is for MSYS2, which requires unix shell commands.
2021-06-21 16:10:13 -07:00
James R
2d7a8c3c57 Makefile: use shell commands to read in Sourcefile
File function is not supported < Make 4.2.
2021-06-21 14:51:42 -07:00
James R
b04c79d8a7 Say 'at' 2021-06-16 16:58:47 -07:00
James R
c142b3241d Makefile: alert full path of final executable
With added textual contrast.
2021-06-16 16:26:17 -07:00
James R
3a044e71cc 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.
2021-06-16 15:39:23 -07:00
James R
c325306ddf Merge remote-tracking branch 'origin/master' into makefile-revision-final 2021-06-07 18:36:01 -07:00
sphere
c266a27073 Merge branch 'master' into 'master'
Fix console text bleeding

See merge request STJr/SRB2!1434
2021-06-06 07:01:30 -04:00
Steel Titanium
7862a557c8 Merge branch 'bugfix-1' of https://github.com/rjpfonseca/SRB2 into rjpfonseca-bugfix-1 2021-05-19 22:57:38 -04:00
SteelT
695722269b Merge branch 'warnings' into 'master'
Fix some compiler warnings

See merge request STJr/SRB2!1504
2021-05-19 22:54:48 -04:00
RJPFonseca
69647eb78d Used spaces instead of tabs in Makefile.cfg 2021-05-09 19:10:53 +01:00
James R
35244fa736 Clang: fix -Wimplicit-const-int-float-conversion
Some of these integers exceed the precision of float. In
that case the number is rounded. The rounding shouldn't
matter too much anyway, so just shut the compiler up.
2021-05-08 16:49:23 -07:00
James R
210c9419e4 Ignore -Wtrigraphs 2021-05-08 16:49:18 -07:00
James R
87afa7655a CMake: fix ASM compile
- target_sources from correct directory
- enable_language must be used in add_executable directory
2021-05-07 18:59:51 -07:00
James R
9e7d80c2c4 Makefile: suppress DEL error 2021-05-07 16:08:24 -07:00
James R
c06817d008 Makefile: fix mingw/64 swapped with 32-bit 2021-05-07 15:30:46 -07:00
James R
ee72312dea Merge remote-tracking branch 'origin/master' into makefile-revision-final 2021-05-07 13:32:19 -07:00
LJ Sonic
07e69c5eb3 Add copyright date ranges for files created in 2020 2021-05-07 18:04:30 +02:00
LJ Sonic
d325c7e6d3 The year is 2021 2021-05-07 17:45:56 +02:00
lachablock
8b021ec16b but if you close your eyes EH OH, EH OH 2021-05-07 12:38:24 +10:00
Tatsuru
3159d5a6e4 2.2.9 prep 2021-05-06 21:58:21 -03:00
sphere
6053740ef7 Merge branch 'light-userdata-is-wrong' into 'next'
Stop using metatables with light userdata

See merge request STJr/SRB2!1495
2021-05-06 12:14:36 -04:00
sphere
413c8563c9 Merge branch 'things-to-tide-you-over' into 'next'
Update URL on the addon screen

See merge request STJr/SRB2!1489
2021-05-06 08:18:12 -04:00
James R
ec8b63d675 Makefile: remove last of unused flags 2021-05-05 21:21:55 -07:00
James R
f9813844e7 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.
2021-05-05 04:00:44 -07:00
James R
3d7205d494 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.
2021-05-04 22:34:20 -07:00
James R
888073d64d Fix make clean printing header 2021-05-04 16:54:47 -07:00
James R
b31056c7d9 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.
2021-05-04 04:22:37 -07:00
James R
44d217807f Collect makefiles 2021-05-03 23:07:44 -07:00
Steel Titanium
80fe39bbd1 Fix MusicChange hook not returning some values correctly 2021-05-03 01:40:02 -04:00
James R
aee963f4e9 Replace LUA_PushLightUserdata with LUA_PushUserdata
See 7df6a309 and 83a87042. I didn't realize that light
userdata's metatable is shared--like numbers or strings.
So it cannot be paired with a metatable.

I also made a few minor tweaks to Lua cvars, other than
accounting for the double pointer in the userdata.
2021-05-02 21:59:23 -07:00
James R
ed5a7f51e8 Revert "Merge branch 'lightmemedata' into 'next'"
This reverts commit d4c08a8410, reversing
changes made to e100f21dda.
2021-05-02 21:32:07 -07:00
Tatsuru
aac3ca320b Update LOCATIONSTRING2 as well 2021-05-01 10:24:28 -03:00
LJ Sonic
f97dc1093a Merge branch 'kitchensync' into 'next'
Attempt to resolve teleportation resync issue

See merge request STJr/SRB2!1490
2021-04-30 20:39:11 -04:00
katsy
815db01438 adjust cooldown to 5 seconds (bandage fix for 2.2.9) 2021-04-30 20:30:35 -04:00
katsy
858cb98e57 attempt to resolve teleportation resync issue 2021-04-30 17:26:09 -05:00