Commit graph

11976 commits

Author SHA1 Message Date
James R
3d19d5386b Merge branch 'appveyor-fix-2' into 'master'
Take advantage of new Makefile in appveyor.yml

See merge request STJr/SRB2!1561
2021-07-02 18:51:29 -04:00
James R
db919accd2 Appveyor: suppress real time file names 2021-06-29 20:01:14 -07:00
James R
44b82dea58 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.
2021-06-29 19:55:14 -07:00
James R
faee657572 Appveyor: update for new Makefile 2021-06-29 19:51:15 -07:00
James R
f79e0ee540 Appveyor: remove 64-bit target 2021-06-29 19:51:15 -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
1721b5b060 Merge branch 'makefile-patches-1' into 'master'
Some issues with the Makefile

See merge request STJr/SRB2!1553
2021-06-24 16:30:11 -04: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
3436d1a83c Add a proxy Makefile at top level 2021-06-16 16:26:18 -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
4e71ee7acb Merge branch 'makefile-revision-final' 2021-06-16 14:47:03 -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
Nev3r
e06b450c75 Merge branch 'small-readme-update' into 'master'
Add badge to readme showing latest stable release

See merge request STJr/SRB2!1510
2021-06-01 02:30:30 -04:00
Steel Titanium
5e1e587ebb Merge branch 'rjpfonseca-bugfix-1' 2021-05-19 23:06:18 -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
Steel Titanium
f55a5b3b0b Add badge to readme showing latest stable release 2021-05-11 20:02:12 -04:00
RJPFonseca
69647eb78d Used spaces instead of tabs in Makefile.cfg 2021-05-09 19:10:53 +01:00
LJ Sonic
d0adee76b2 Merge branch 'the-year-is-2021' into 'master'
The year is 2021

See merge request STJr/SRB2!1500
2021-05-09 09:28:31 -04: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
8b9b25829a Merge branch '229-prep' into 'next'
2.2.9 prep

See merge request STJr/SRB2!1499
2021-05-06 21:42:53 -04: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
c8a4a7a0b1 Merge branch 'musicchange-hook-fix' into 'next'
Fix MusicChange hook not returning some values correctly

See merge request STJr/SRB2!1496
2021-05-05 20:02:15 -04: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
8840bef2cb Appveyor: update to correct executable directory this time 2021-05-04 17:05:54 -07:00
James R
888073d64d Fix make clean printing header 2021-05-04 16:54:47 -07:00
James R
53d1cbe826 Appveyor: update executable directory 2021-05-04 16:50:50 -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