Compiling Zandronum on Mac: Difference between revisions

From Zandronum Wiki
(updated zan links to https for consistency)
Tag: Source edit
(nitpicked words n stuff, hopefully helped more than harmed)
Line 8: Line 8:
**[https://github.com/nigels-com/glew/releases GLEW]
**[https://github.com/nigels-com/glew/releases GLEW]
**[https://zandronum.com/essentials/fmod/ FMOD Ex] 4.44.64
**[https://zandronum.com/essentials/fmod/ FMOD Ex] 4.44.64
**[https://www.python.org/downloads/ Python3] (It's Already on the Mac)
**[https://www.python.org/downloads/ Python3] (It's already on the Mac)
**[https://www.openssl.org/source/ Openssl] ''(for Zandronum 1.3 or later)''
**[https://www.openssl.org/source/ Openssl] ''(for Zandronum 1.3 or later)''
**SQLite ''(for Zandronum 1.3 or later)''
**SQLite ''(for Zandronum 1.3 or later)''
Line 24: Line 24:


=== Command line Tools ===
=== Command line Tools ===
Open Terminal.app and paste this Command:
Open Terminal.app and paste this command:
  xcode-select --install
  xcode-select --install
it will pop up this:  
This'll pop up:  


[[File:Xcode Command Line Tools popup.png|border|frameless]]  
[[File:Xcode Command Line Tools popup.png|border|frameless]]  


Install it (Beware its big so makes sure you got enough space and it takes awhile depending on your internet and drive speed)  
Install it. (Caution: it's big so make sure you got enough space)  


=== App Store (if you have an newer system) ===
=== App Store (if you have an newer system) ===
[https://apps.apple.com/au/app/xcode/id497799835?mt=12 Xcode] (Click the link. It will go straight to the App Store)  
[https://apps.apple.com/au/app/xcode/id497799835?mt=12 Xcode] (Click the link, it'll go straight to the App Store)  


=== Apple developer (if you have an older system) ===
=== Apple developer (if you have an older system) ===
https://developer.apple.com/download/all/ (Sign In is required. it includes Command line Tools as well)
https://developer.apple.com/download/all/ (Sign in is required. It includes Command line Tools as well)


== Installing  from HomeBrew or Macports ==
== Installing  from HomeBrew or Macports ==
Line 51: Line 51:


== Create zandronum_build directory ==
== Create zandronum_build directory ==
Into Terminal.app and paste this Command::  
Open Terminal.app and paste this command:  
  mkdir -pv ~/zandronum_build
  mkdir -pv ~/zandronum_build


Line 57: Line 57:


==== If you already have this installed using HomeBrew or Macports. Please skip this section. ====
==== If you already have this installed using HomeBrew or Macports. Please skip this section. ====
Create a Directory like this:
Create a directory like this:
  cd  ~/zandronum_build && mkdir -pv sdl_pack
  cd  ~/zandronum_build && mkdir -pv sdl_pack
Download [https://github.com/libsdl-org/SDL/releases/latest SDL2] and [https://github.com/libsdl-org/sdl12-compat/releases SDL 1.2 Compatibility], extract it and add it in to folder we just added above
Download [https://github.com/libsdl-org/SDL/releases/latest SDL2] and [https://github.com/libsdl-org/sdl12-compat/releases SDL 1.2 Compatibility] and extract them into it.


Or
Or


Clone it:
Clone it:
  git clone https://github.com/libsdl-org/sdl12-compat.git && git clone https://github.com/libsdl-org/SDL.git
  git clone https://github.com/libsdl-org/sdl12-compat.git && git clone https://github.com/libsdl-org/SDL.git
Click on the CMake app that you added into the applications, It will give you a warning that you downloaded third party app on mac, Just hit OK.
Click on the CMake app that you added into Applications, it'll give you a warning that you downloaded a third party app on Mac, just hit OK.


Click Browse Source, Choose where you put sdl12-compat in then open.
Click Browse Source, choose where you put SDL12-Compat, then click Open.


Better if you build it inside the source, So do the same in Browse Build. Add new folder into sdl12-compat called build
It's better if you build it inside the source, so do the same in Browse Build. Add a new folder into SDL12-Compat called Build.


When you click Configure it will popup a window choose "Unix Makefile" (Its faster than using Xcode type) and click done
When you click Configure it'll popup a window, choose "Unix Makefiles" (It's faster than using Xcode type) and click Done.


Config how the image looks below it should be like this:
Configure CMake like the image below:


[[File:SDL_macOS_2.png|border|frameless]]Make Sure you disable SDL12TEST as we don't need it also make it x86_64 as the default arch because we are not using ARM64 till further releases.
[[File:SDL_macOS_2.png|border|frameless]]


When you checkmark advanced mode it should give you SDL2 Section.
Make sure you disable SDL12TESTS as we don't need it and make the default architecture x86_64 because we are not using ARM64 until further releases.


Still config only SDL_INCLUDE_DIR Don't worry about the Library.
Then check Advanced to display the SDL2 Section.
 
Configure only SDL_INCLUDE_DIR.


[[File:Sdl_advanced.png|border|frameless]]
[[File:Sdl_advanced.png|border|frameless]]


Generate, then Compile it will give you 2 files.
Click Generate and then compile, it'll give you 2 files.
  cd  ~/zandronum_build/sdl_pack/sdl12-compat/build/ && make
  cd  ~/zandronum_build/sdl_pack/sdl12-compat/build/ && make


Line 95: Line 97:
Browse where you put zandronum_build in:  
Browse where you put zandronum_build in:  


it should be like this:  
It should be like this:  
 
[[File:TortoiseHGclone.png|border|frameless]]


[[File:TortoiseHGclone.png|border|frameless]]Click clone
Click Clone.
==== Stable ====
==== Stable ====
if you are looking for Stable version go to Repository -> Update  
if you are looking for the Stable version go to Repository -> Update  
 
It should pop up like this: 


it should pop up like this:
[[File:Zan_3.1.png|frameless]]


[[File:Zan_3.1.png|frameless]]Go to the dropdown and find ZA_3.1  then Update.
Select ZA_3.1 from the dropdown then click Update.


You might need to add this patch for bundling an app: (if its does give you the text file download it by Right click and Save as )
You might need to add this patch for bundling an app: (If it does give you the text file, download it by Right clicking and selecting Save as.)
  https://osdn.net/downloads/users/39/39032/Appbundle.patch/
  https://osdn.net/downloads/users/39/39032/Appbundle.patch/
To add the patch:  
To add the patch:  
Line 111: Line 117:
Go to Repository -> Import Patches
Go to Repository -> Import Patches


Browse to find the Appbundle.patch then open and import. (it won't include the icon for Mac OS for some reason)
Browse to the Appbundle.patch then click Open and then Import. (It won't include the icon for Mac OS for some reason.)
  https://osdn.net/downloads/users/39/39033/zandronum.icns/
  https://osdn.net/downloads/users/39/39033/zandronum.icns/
Put this icon where you put the source into:
Put this icon where you put the source into:
Line 117: Line 123:


== Compiling Zandronum ==
== Compiling Zandronum ==
Open the CMake app again
Open the CMake app again.
 
This is a lot because you must compile most of the dependencies before you can do this next part, so read the readme on each source codes. Homebrew and MacPorts are fine.


This is a lot because you got to compile most of the dependencies before you could do this next part so read the readme on each source codes. Homebrew and MacPorts are fine
So firstly Browse Source and Build like you did with SDL12-Compat.<blockquote>Click Browse Source, choose where you put SDL12-Compat, then click Open.


So firstly browse source and build like you did with sdl12-compat.<blockquote>Click Browse Source, Choose where you put zandronum-stable in then open.
It's better if you build it inside the source, so do the same in Browse Build. Add a new folder into SDL12-Compat called Build.  


Better if you build it inside the source, So do the same in Browse Build. Add new folder into zandronum-stable called build
When you click Configure it'll popup a window, choose "Unix Makefiles" (It's faster than using Xcode type) and click Done. </blockquote>If it shows an error that means they couldn't find the rest. So you need to go through each dependency to find the directories and files then hit Generate.


When you click Configure it will popup a window choose "Unix Makefile" (Its faster than using Xcode type) and click done </blockquote>It does show an error that means they couldn't find the rest. So you need to go through each dependence to find the directories and files Then hit Generate.
This is how it should look:


This is how it looks:
[[File:Mac OS compiling .png|border|frameless]]


[[File:Mac OS compiling .png|border|frameless]]If you see only SDL_INCLUDE_DIR. Add entry and type in SDL_LIBRARY then browse for the Dylib.
If you only see SDL_INCLUDE_DIR, click Add Entry and type in SDL_LIBRARY then browse for the Dylib.


Once you done everything, compile   
Once you've done everything, compile.  
  cd  ~/zandronum_build/zandronum-stable/build/ && make -j(nproc)
  cd  ~/zandronum_build/zandronum-stable/build/ && make -j(nproc)

Revision as of 07:07, 30 August 2022

Install dependencies

Zandronum needs certain tools and development files in order to compile:

  • Required
  • Optional
    • Fluidsynth (For Midi Device)
    • zlib (Zandronum has a copy of it and will be statically compiled in if not found)
    • libbzip2 (possibly static)
    • libjpeg (possibly static)
    • HomeBrew or Macports (Not recommended for building using M1 or M2 (ARM64) CPU)
    • Rosetta 2 (for building X86_64 binaries using M1 or M2 (ARM64) CPU)

Installing Xcode

There are 3 ways to install Xcode:

Command line Tools

Open Terminal.app and paste this command:

xcode-select --install

This'll pop up:

Install it. (Caution: it's big so make sure you got enough space)

App Store (if you have an newer system)

Xcode (Click the link, it'll go straight to the App Store)

Apple developer (if you have an older system)

https://developer.apple.com/download/all/ (Sign in is required. It includes Command line Tools as well)

Installing from HomeBrew or Macports

HomeBrew (MacOS 10.15 - Latest)

brew install jpeg-turbo fluid-synth openssl sdl2 sdl12-compat

MacPorts (Legacy MacOS)

sudo port install jpeg-turbo fluid-synth openssl sdl2 sdl12-compat

Installing CMake GUI and TortoiseHG

Download CMake and TortoiseHG

Open up the DMG and copy them into Applications (or drag them).

Create zandronum_build directory

Open Terminal.app and paste this command:

mkdir -pv ~/zandronum_build

Compiling SDL12-Compat

If you already have this installed using HomeBrew or Macports. Please skip this section.

Create a directory like this:

cd  ~/zandronum_build && mkdir -pv sdl_pack

Download SDL2 and SDL 1.2 Compatibility and extract them into it.

Or

Clone it:

git clone https://github.com/libsdl-org/sdl12-compat.git && git clone https://github.com/libsdl-org/SDL.git

Click on the CMake app that you added into Applications, it'll give you a warning that you downloaded a third party app on Mac, just hit OK.

Click Browse Source, choose where you put SDL12-Compat, then click Open.

It's better if you build it inside the source, so do the same in Browse Build. Add a new folder into SDL12-Compat called Build.

When you click Configure it'll popup a window, choose "Unix Makefiles" (It's faster than using Xcode type) and click Done.

Configure CMake like the image below:

Make sure you disable SDL12TESTS as we don't need it and make the default architecture x86_64 because we are not using ARM64 until further releases.

Then check Advanced to display the SDL2 Section.

Configure only SDL_INCLUDE_DIR.

Click Generate and then compile, it'll give you 2 files.

cd  ~/zandronum_build/sdl_pack/sdl12-compat/build/ && make

TortoiseHG

Open TortoiseHG.app

Go to File -> Clone Repository

Add this line it to the source line:

https://hg.osdn.net/view/zandronum/zandronum-stable

Browse where you put zandronum_build in:

It should be like this:

Click Clone.

Stable

if you are looking for the Stable version go to Repository -> Update

It should pop up like this:

Select ZA_3.1 from the dropdown then click Update.

You might need to add this patch for bundling an app: (If it does give you the text file, download it by Right clicking and selecting Save as.)

https://osdn.net/downloads/users/39/39032/Appbundle.patch/

To add the patch:

Go to Repository -> Import Patches

Browse to the Appbundle.patch then click Open and then Import. (It won't include the icon for Mac OS for some reason.)

https://osdn.net/downloads/users/39/39033/zandronum.icns/

Put this icon where you put the source into:

/src/sdl/

Compiling Zandronum

Open the CMake app again.

This is a lot because you must compile most of the dependencies before you can do this next part, so read the readme on each source codes. Homebrew and MacPorts are fine.

So firstly Browse Source and Build like you did with SDL12-Compat.

Click Browse Source, choose where you put SDL12-Compat, then click Open.

It's better if you build it inside the source, so do the same in Browse Build. Add a new folder into SDL12-Compat called Build.

When you click Configure it'll popup a window, choose "Unix Makefiles" (It's faster than using Xcode type) and click Done.

If it shows an error that means they couldn't find the rest. So you need to go through each dependency to find the directories and files then hit Generate.

This is how it should look:

If you only see SDL_INCLUDE_DIR, click Add Entry and type in SDL_LIBRARY then browse for the Dylib.

Once you've done everything, compile.

cd  ~/zandronum_build/zandronum-stable/build/ && make -j(nproc)