Building
========
Type:
make
If this fails and you're certain you have GNUstep's development
stuff installed, make sure you have this in your .bashrc or
equivalent:
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
[...]
Changing Oolite...
Moderators: winston, another_commander
-
- Quite Grand Sub-Admiral
- Posts: 6682
- Joined: Wed Feb 28, 2007 7:54 am
Re: Changing Oolite...
Quoting from README_LINUX.txt inside the Doc folder:
- hiran
- Theorethicist
- Posts: 2403
- Joined: Fri Mar 26, 2021 1:39 pm
- Location: a parallel world I created for myself. Some call it a singularity...
Re: Changing Oolite...
What a joke! I just stumbled over the oolite wrapper script that needs to be used at runtime.hiran wrote: ↑Wed Jan 26, 2022 9:20 pmWell, I will not be able to recreate the build system alone.another_commander wrote: ↑Wed Jan 26, 2022 9:17 pmWhoa! This is not OK. GNUSTEP_HOST should be defined before the build starts, as well as a bunch of other gnustep environment variables. You are probably missing a step somewhere. Please check - on Windows we are running /mingw/../devlibs/gnustep1201/System/Library/Makefiles/GNUstep.sh inside the profile file. Make sure that this Makefiles/GNUstep.sh script runs before you start the build.hiran wrote: ↑Wed Jan 26, 2022 9:14 pmgives nothing as $(GNUSTEP_HOST_CPU) is undefined.Code: Select all
$(shell echo $(GNUSTEP_HOST_CPU) | sed -e s/i.86/x86/ -e s/amd64/x86_64/ )
If you want to recreate the build system from scratch be my guest. But I cannot help you with that.
The first variable is getting set in./deps/Linux-deps/oolite.src
Is that one called automatically? Would I have to call it? I will add a call before running make...
So checking what I might call for the build variables to be initialized...
Code: Select all
$ find -name "*.sh"
./installers/posix/makeself-header.sh
./installers/posix/makeself.sh
./installers/posix/make_installer.sh
./tests/mac-build-clean/build-clean.sh
./tools/mkwininst.sh
./tools/mkwinsnapshotinst.sh
./tools/mkmanifest.sh
./deps/Linux-deps/x86/lib_linker/make_so_links.sh
./deps/Linux-deps/x86_64/lib_linker/make_so_links.sh
./deps/Cocoa-deps/scripts/update-mozilla.sh
./deps/Cocoa-deps/scripts/update-sparkle.sh
./deps/Cocoa-deps/scripts/update-library.sh
./deps/mozilla/nsprpub/pr/tests/runtests.sh
./deps/mozilla/nsprpub/admin/makeTargetDirs.sh
./deps/mozilla/nsprpub/admin/repackage.sh
./deps/mozilla/nsprpub/admin/symlinks.sh
./deps/mozilla/js/src/time.sh
./deps/mozilla/js/src/bench.sh
./deps/mozilla/js/src/build/autoconf/match-dir.sh
./deps/mozilla/js/src/build/unix/print-failed-commands.sh
./deps/mozilla/js/src/tests/config.sh
./deps/mozilla/js/src/tests/changes.sh
./deps/mozilla/js/src/tests/process-logs.sh
./deps/mozilla/js/src/tests/bisect.sh
./deps/mozilla/js/src/tests/remove-fixed-failures.sh
./deps/mozilla/js/src/tests/detect-universe.sh
./deps/mozilla/js/src/tests/get-universe.sh
./deps/mozilla/js/src/tests/test.sh
./deps/mozilla/js/src/tests/runtests.sh
./deps/mozilla/js/src/ctypes/libffi/msvcc.sh
./deps/mozilla/js/src/ctypes/libffi/ltmain.sh
./deps/mozilla/js/src/lirasm/testlirc.sh
./deps/libogg/ltmain.sh
./deps/libvorbis/autogen.sh
./deps/libvorbis/ltmain.sh
$
Sunshine - Moonlight - Good Times - Oolite
-
- Quite Grand Sub-Admiral
- Posts: 6682
- Joined: Wed Feb 28, 2007 7:54 am
Re: Changing Oolite...
See my last post.
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
- hiran
- Theorethicist
- Posts: 2403
- Joined: Fri Mar 26, 2021 1:39 pm
- Location: a parallel world I created for myself. Some call it a singularity...
Re: Changing Oolite...
I will now define the variables myself.
HOST_ARCH=x86_64
What is GNUSTEP_HOST expected to be?
HOST_ARCH=x86_64
What is GNUSTEP_HOST expected to be?
Sunshine - Moonlight - Good Times - Oolite
-
- Quite Grand Sub-Admiral
- Posts: 6682
- Joined: Wed Feb 28, 2007 7:54 am
Re: Changing Oolite...
I've told you exactly which script you need to run. Please read my earlier responses.
- hiran
- Theorethicist
- Posts: 2403
- Joined: Fri Mar 26, 2021 1:39 pm
- Location: a parallel world I created for myself. Some call it a singularity...
Re: Changing Oolite...
Good you mention. I missed the blank after the dot.another_commander wrote: ↑Wed Jan 26, 2022 9:40 pmSee my last post.
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
Now I found /usr/share/GNUstep/Makefiles/GNUstep.sh, and the content is a real eye-opener.
I will run this before make.
Sunshine - Moonlight - Good Times - Oolite
- hiran
- Theorethicist
- Posts: 2403
- Joined: Fri Mar 26, 2021 1:39 pm
- Location: a parallel world I created for myself. Some call it a singularity...
Re: Changing Oolite...
So now I executed
I received an exit code of 2 and this on stderr:
Not really a big change. Also when I look at stdout, which contains
Again no HOST_ARCH.
Even more strange. if I logon to the system and invoke
I see none of the variables that should get 'exported' in the environment. Same effect with
Code: Select all
. /usr/share/GNUstep/Makefiles/GNUstep.sh; make -fMakefile pkg-posix-nightly
Code: Select all
"/usr/share/GNUstep/Makefiles/objc.make:30: objc.make is deprecated. Please use tool.make instead",
"make[1]: *** No rule to make target 'deps-nightly'. Stop.",
"make: *** [Makefile:224: pkg-posix-nightly] Error 2"
Code: Select all
installers/posix/make_installer.sh 1.91.0.7444-220126-d52b6be \"release-snapshot\" \"nightly\"
Even more strange. if I logon to the system and invoke
Code: Select all
. /usr/share/GNUstep/Makefiles/GNUstep.sh;printenv
Code: Select all
source /usr/share/GNUstep/Makefiles/GNUstep.sh;printenv
Sunshine - Moonlight - Good Times - Oolite
- hiran
- Theorethicist
- Posts: 2403
- Joined: Fri Mar 26, 2021 1:39 pm
- Location: a parallel world I created for myself. Some call it a singularity...
Re: Changing Oolite...
For crying out loud! Why does the script undo everything it performs before?
Code: Select all
$ bash -x /usr/share/GNUstep/Makefiles/GNUstep.sh 2>&1 | grep GNUSTEP_HO
+ GNUSTEP_HOME=/home/vagrant
+ GNUSTEP_HOST=x86_64-pc-linux-gnu
+ GNUSTEP_HOST_CPU=x86_64
+ GNUSTEP_HOST_VENDOR=pc
+ GNUSTEP_HOST_OS=linux-gnu
+ unset GNUSTEP_HOME
+ case "$GNUSTEP_HOST_OS" in
+ case "$GNUSTEP_HOST_OS" in
+ case "$GNUSTEP_HOST_OS" in
+ case "$GNUSTEP_HOST_OS" in
+ unset GNUSTEP_HOST
+ unset GNUSTEP_HOST_CPU
+ unset GNUSTEP_HOST_VENDOR
+ unset GNUSTEP_HOST_OS
$
Sunshine - Moonlight - Good Times - Oolite
-
- Quite Grand Sub-Admiral
- Posts: 6682
- Joined: Wed Feb 28, 2007 7:54 am
Re: Changing Oolite...
Probably because GNUSTEP_MAKE_STRICT_V2_MODE is set to yes inside the GNUstep.sh script. FWIW, it is set to no in my version of GNUstep.sh, which indicates that it might have to do with the gnustep version used.
- hiran
- Theorethicist
- Posts: 2403
- Joined: Fri Mar 26, 2021 1:39 pm
- Location: a parallel world I created for myself. Some call it a singularity...
Re: Changing Oolite...
Inside that GNUstep.sh I found a variable named GNUSTEP_SH_EXPORT_ALL_VARIABLES and initialized that to 'yes' before running the GNUstep.sh.another_commander wrote: ↑Wed Jan 26, 2022 10:28 pmProbably because GNUSTEP_MAKE_STRICT_V2_MODE is set to yes inside the GNUstep.sh script. FWIW, it is set to no in my version of GNUstep.sh, which indicates that it might have to do with the gnustep version used.
The next build succeeded, and I see this on stdout:
Code: Select all
"Self-extractible archive \"oolite-trunk-1.91.0.d52b6be-dev.linux-x86_64.run\" successfully created.",
"It is located in the \"installers/posix/\" folder."
Sunshine - Moonlight - Good Times - Oolite
- hiran
- Theorethicist
- Posts: 2403
- Joined: Fri Mar 26, 2021 1:39 pm
- Location: a parallel world I created for myself. Some call it a singularity...
Re: Changing Oolite...
So I setup the Github Action similarly, and now we get Linux installers automatically:hiran wrote: ↑Wed Jan 26, 2022 10:40 pmThe next build succeeded, and I see this on stdout:
Code: Select all
"Self-extractible archive \"oolite-trunk-1.91.0.d52b6be-dev.linux-x86_64.run\" successfully created.", "It is located in the \"installers/posix/\" folder."
https://github.com/HiranChaudhuri/oolit ... ag/nightly
I have not tested the content of the file but yet another step is covered.
Thank you another_commander and Commander_X for your patience and support.
Sunshine - Moonlight - Good Times - Oolite
-
- Quite Grand Sub-Admiral
- Posts: 6682
- Joined: Wed Feb 28, 2007 7:54 am
Re: Changing Oolite...
Regarding this part in the nightly.yml, I see some redundancy, which may or may not be a cause of problems down the line. All this:
should be replaced by this:
deps=yes and the make_so_links.sh script are set automatically by the installer script. Also, you don't want both release and pkg-posix-nightly there, you may actually be building a configuration different to the nightly one. pkg-posix-nightly is the only argument that is needed.
Code: Select all
pushd .
cd deps/Linux-deps/x86_64/lib_linker; ./make_so_links.sh
popd
# build the release
make -f Makefile release use_deps=yes pkg-posix-nightly
Code: Select all
# build the release
make -f Makefile pkg-posix-nightly
- hiran
- Theorethicist
- Posts: 2403
- Joined: Fri Mar 26, 2021 1:39 pm
- Location: a parallel world I created for myself. Some call it a singularity...
Re: Changing Oolite...
I configured your suggestion. The build is now performed asanother_commander wrote: ↑Thu Jan 27, 2022 7:26 amRegarding this part in the nightly.yml, I see some redundancy, which may or may not be a cause of problems down the line. All this:should be replaced by this:Code: Select all
pushd . cd deps/Linux-deps/x86_64/lib_linker; ./make_so_links.sh popd # build the release make -f Makefile release use_deps=yes pkg-posix-nightly
deps=yes and the make_so_links.sh script are set automatically by the installer script. Also, you don't want both release and pkg-posix-nightly there, you may actually be building a configuration different to the nightly one. pkg-posix-nightly is the only argument that is needed.Code: Select all
# build the release make -f Makefile pkg-posix-nightly
Code: Select all
# install required subsystems
sudo apt install libgnustep-base-dev
sudo apt install libsdl1.2-dev
sudo apt install libvorbis-dev
sudo apt install libopenal-dev
sudo apt install libespeak-dev
sudo apt install libnspr4-dev
sudo apt install g++
cd oolite
# make sure the GNUSTEP_MAKEFILES property is set
export GNUSTEP_SH_EXPORT_ALL_VARIABLES=yes
. /usr/share/GNUstep/Makefiles/GNUstep.sh
# build the release
make -f Makefile pkg-posix-nightly
apt install libgnustep-base-dev
at all.Something is still wrong, and I believe the problems will continue as long as all these
apt install
lines are required.Sunshine - Moonlight - Good Times - Oolite
-
- Quite Grand Sub-Admiral
- Posts: 6682
- Joined: Wed Feb 28, 2007 7:54 am
Re: Changing Oolite...
Can't you apt-get-install the specific gnustep-base 1.20 version and build against it?
Edit: Hello dependency hell, how are you?
Edit: Hello dependency hell, how are you?
- hiran
- Theorethicist
- Posts: 2403
- Joined: Fri Mar 26, 2021 1:39 pm
- Location: a parallel world I created for myself. Some call it a singularity...
Re: Changing Oolite...
In practice I never tried - always went for the most up to date one. Let me investigate.another_commander wrote: ↑Thu Jan 27, 2022 11:48 amCan't you apt-get-install the specific gnustep-base 1.20 version and build against it?
Edit: Hello dependency hell, how are you?
But the real point is: Why do we store specific versions of a library within Github if we then still compile with external references? Should we not try to link towards the stuff we later distribute with the release?
Sunshine - Moonlight - Good Times - Oolite