Copyright © Alex Bettarini, 2019-2024
The purpose of this project is to assist in setting up and configuring all dependencies for the project Miele-LXIV.
In other words, the goal of this project is NOT to build Miele-LXIV, but to create and configure the Xcode project that builds Miele-LXIV.
The directory where this README.md file has been downloaded shall be referred to as EASY_HOME
Additionally, you must define the three top-level directories involved in the process (or conveniently accept the suggested defaults in STEP 1 below):
SRC
where all the source files will be downloadedBLD
temporary location for intermediate filesBIN
the Xcode project will reference 3rd party modules installed herekconfig-mconf
This is a tool normally used in Linux systems to rebuild the kernel with a custom configuration. It was chosen because it creates configuration files that work well with shell scripts.
It's probably possible to install it from sources, and the dependencies can be installed using brew (gperf ncurses flex bison).
Instead, I found it very convenient to install it like in the NuttX project:
$ mkdir -p $SRC/nuttx
$ cd $SRC/nuttx
$ cd $SRC/nuttx/tools/kconfig-frontends
$ ./configure --disable-shared --enable-static --disable-gconf --disable-qconf --disable-nconf --disable-utils
$ make
$ sudo make install
$ which kconfig-mcon
wget
cmake
CMake
is the GUI application, whereas cmake
is the CLI utility that we need. If the command $ which cmake
doesn't return anything, you can install it either with brew:
$ brew install cmake
or from the GUI package:
$ sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
Assuming the file $EASY_HOME/seed.conf
hasn't been created yet, do the following:
$ cd $EASY_HOME
$ ./build.sh
If you are brave or have the need for it, define and select your own version set file. I suggest you don't change anything, to get a default, tried and tested setup.
This is also a step that should be run once only:
$ ./reconfigure.sh
Run the shell script that carries out the downloads:
$ ./build.sh
If everything goes smoothly this step is also done once only:
$ ./reconfigure.sh
Run the shell script. This step will run for about one hour. To capture possible errors and warnings, save the output to a log file:
$ script log/$(date +%Y%m%d_%H%M).txt
$ ./build.sh ; exit
This step sets up the Binaries
directory of the Xcode project
$ ./reconfigure.sh
Run the shell script.
$ ./build.sh
While STEPS 1..4 are nicely engineered to configure the project, there still remains some fixup to be done manually. This extra step will soon disappear, being replaced by a more elegant behind the scenes action. For the time being, please make the effort of doing what is explained in the link below.
Now the goal of setting up the Xcode project that builds Miele-LXIV has been reached. You should be able to build the application from Xcode, make your modifications to the source files, and start your usual development cycle.
If you prefer to work from the Command line, open up Terminal and re-build the project like this:
$ xcodebuild -configuration Development -target miele-lxiv
Note that one of the advantages of building the Development version is that it will NOT be sandboxed.
If you want to reclaim some disk space you can safely remove the miele-...
subdirectory in $BLD.