mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	 d5c08ac034
			
		
	
	
		d5c08ac034
		
	
	
	
	
		
			
			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].
		
			
				
	
	
		
			119 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| version: 2.0.{branch}-{build}
 | |
| os: MinGW
 | |
| 
 | |
| environment:
 | |
|  CC: i686-w64-mingw32-gcc
 | |
|  WINDRES: windres
 | |
|  # c:\mingw-w64 i686 has gcc 6.3.0, so use c:\msys64 7.3.0 instead
 | |
|  MINGW_SDK: c:\msys64\mingw32
 | |
|  CFLAGS: -Wno-implicit-fallthrough
 | |
|  NASM_ZIP: nasm-2.12.01
 | |
|  NASM_URL: http://www.nasm.us/pub/nasm/releasebuilds/2.12.01/win64/nasm-2.12.01-win64.zip
 | |
|  UPX_ZIP: upx391w
 | |
|  UPX_URL: http://upx.sourceforge.net/download/upx391w.zip
 | |
|  CCACHE_EXE: ccache.exe
 | |
|  CCACHE_URL: http://alam.srb2.org/ccache.exe
 | |
|  CCACHE_COMPRESS: true
 | |
|  CCACHE_DIR: C:\Users\appveyor\.ccache
 | |
|  ##############################
 | |
|  # DEPLOYER VARIABLES
 | |
|  # DPL_ENABLED=1 builds installers for branch names starting with `deployer`.
 | |
|  # DPL_TAG_ENABLED=1 will also build installers for release tags. DPL_ENABLED=1 must also be set.
 | |
|  # Set these in the Appveyor project settings
 | |
|  ##############################
 | |
|  DPL_ENABLED: 0
 | |
|  DPL_TAG_ENABLED: 0
 | |
|  DPL_INSTALLER_NAME: srb2kart-v20
 | |
|  # Asset handling is barebones vs. Travis Deployer. We operate on 7z only.
 | |
|  # Include the README files and the OpenGL batch in the main and patch archives.
 | |
|  # The x86/x64 archives contain the DLL binaries.
 | |
|  ASSET_ARCHIVE_PATH: https://github.com/mazmazz/Kart-Public/releases/download/kart_assets/srb2kart-v102-assets.7z
 | |
|  ASSET_ARCHIVE_PATCH_PATH: https://github.com/mazmazz/Kart-Public/releases/download/kart_assets/srb2kart-v102-patch-assets.7z
 | |
|  ASSET_ARCHIVE_X86_PATH: https://github.com/mazmazz/Kart-Public/releases/download/kart_assets/srb2kart-v102-x86-assets.7z
 | |
|  ASSET_ARCHIVE_X64_PATH: https://github.com/mazmazz/Kart-Public/releases/download/kart_assets/srb2kart-v102-x64-assets.7z
 | |
|  ASSET_ARCHIVE_OPTIONAL_PATH: https://github.com/mazmazz/Kart-Public/releases/download/kart_assets/srb2kart-v102-optional-assets.7z
 | |
|  # This is overridden to 1 for release tag builds
 | |
|  ASSET_FILES_OPTIONAL_GET: 0
 | |
|  # For patches, also include the X86/X64 DLLs.
 | |
|  PACKAGE_PATCH_DLL_GET: 0
 | |
|  # Delete all asset downloads so they can be redownloaded
 | |
|  ASSET_CLEAN: 0
 | |
| 
 | |
| cache:
 | |
| - nasm-2.12.01.zip
 | |
| - upx391w.zip
 | |
| - ccache.exe
 | |
| - C:\Users\appveyor\.ccache
 | |
| - C:\Users\appveyor\srb2_cache
 | |
| 
 | |
| install:
 | |
| - if not exist "%NASM_ZIP%.zip" appveyor DownloadFile "%NASM_URL%" -FileName "%NASM_ZIP%.zip"
 | |
| - 7z x -y "%NASM_ZIP%.zip" -o%TMP% >null
 | |
| - robocopy /S /xx /ns /nc /nfl /ndl /np /njh /njs "%TMP%\%NASM_ZIP%" "%MINGW_SDK%\bin" nasm.exe || exit 0
 | |
| 
 | |
| - if not exist "%UPX_ZIP%.zip" appveyor DownloadFile "%UPX_URL%" -FileName "%UPX_ZIP%.zip"
 | |
| - 7z x -y "%UPX_ZIP%.zip" -o%TMP% >null
 | |
| - robocopy /S /xx /ns /nc /nfl /ndl /np /njh /njs "%TMP%\%UPX_ZIP%" "%MINGW_SDK%\bin" upx.exe || exit 0
 | |
| 
 | |
| - if not exist "%CCACHE_EXE%" appveyor DownloadFile "%CCACHE_URL%" -FileName "%CCACHE_EXE%"
 | |
| - ccache -M 99M
 | |
| - xcopy /Y /V /I ccache.exe "%MINGW_SDK%\bin"
 | |
| 
 | |
| configuration:
 | |
| - SDL
 | |
| 
 | |
| before_build:
 | |
| - set "Path=%MINGW_SDK%\bin;%Path%"
 | |
| - mingw32-make --version
 | |
| - nasm -v
 | |
| - if not [%NOUPX%] == [1] ( upx -V )
 | |
| - ccache -V
 | |
| - ccache -s
 | |
| - if defined [%APPVEYOR_PULL_REQUEST_HEAD_COMMIT%] ( set "COMMIT=%APPVEYOR_PULL_REQUEST_HEAD_COMMIT%" ) else ( set "COMMIT=%APPVEYOR_REPO_COMMIT%" )
 | |
| - cmd: git rev-parse --short %COMMIT%>%TMP%/gitshort.txt
 | |
| - cmd: set /P GITSHORT=<%TMP%/gitshort.txt
 | |
| # for pull requests, take the owner's name only, if this isn't the same repo of course
 | |
| - set "REPO=%APPVEYOR_REPO_BRANCH%"
 | |
| - if not [%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%] == [] ( if not [%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%] == [%APPVEYOR_REPO_NAME%] (  for /f "delims=/" %%a in ("%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%") do set "REPO=%%a-%APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH%" ) )
 | |
| - set "SRB2_MFLAGS=-C src NOECHOFILENAMES=1 CCACHE=1 EXENAME=srb2win-%REPO%-%GITSHORT%.exe"
 | |
| 
 | |
| build_script:
 | |
| - cmd: mingw32-make.exe %SRB2_MFLAGS% clean
 | |
| - cmd: mingw32-make.exe %SRB2_MFLAGS% ERRORMODE=1 -k
 | |
| 
 | |
| after_build:
 | |
| - ccache -s
 | |
| - set BUILD_ARCHIVE=%REPO%-%GITSHORT%-%CONFIGURATION%.7z
 | |
| - set BUILDSARCHIVE=%REPO%-%CONFIGURATION%.7z
 | |
| - cmd: 7z a %BUILD_ARCHIVE% %BUILD_PATH% -xr!.gitignore
 | |
| - appveyor PushArtifact %BUILD_ARCHIVE%
 | |
| #- cmd: copy %BUILD_ARCHIVE% %BUILDSARCHIVE%
 | |
| #- appveyor PushArtifact %BUILDSARCHIVE%
 | |
| ##############################
 | |
| # DEPLOYER SCRIPT
 | |
| ##############################
 | |
| - if [%DPL_ENABLED%] == [1] ( call "deployer\appveyor\deployer.bat" )
 | |
| 
 | |
| test: off
 | |
| 
 | |
| #deploy:
 | |
| #  - provider: FTP
 | |
| #    protocol: ftps
 | |
| #    host:
 | |
| #      secure: NsLJEPIBvmwCOj8Tg8RoRQ==
 | |
| #    username:
 | |
| #      secure: ejxi5mvk7oLYu7QtbYojajEPigMy0mokaKhuEVuDZcA=
 | |
| #    password:
 | |
| #      secure: Hbn6Uy3lT0YZ88yFJ3aW4w==
 | |
| #    folder: appveyor
 | |
| #    application:
 | |
| #    active_mode: false
 | |
| #    on:
 | |
| #      branch: master
 | |
| #      appveyor_repo_tag: true
 | |
| 
 | |
| 
 | |
| on_finish:
 | |
| #- cmd: echo xfreerdp /u:appveyor /cert-ignore +clipboard /v:<ip>:<port>
 | |
| #- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
 | |
| # vim: et ts=1
 |