]> Kevux Git Server - fll/commit
Bugfix: Problematic handling of object files.
authorKevin Day <kevin@kevux.org>
Fri, 29 Mar 2024 03:50:21 +0000 (22:50 -0500)
committerKevin Day <kevin@kevux.org>
Fri, 29 Mar 2024 04:09:58 +0000 (23:09 -0500)
commitbd842c90db0481dfc1bf6beee662ee0cbc6e1b0b
tree3c105845172a989467e0e03d2c1f751b8933d19e
parent8836b416cfb8555178215e60fe460664c3c4042b
Bugfix: Problematic handling of object files.

The object files are not being compiled correctly when performing a static build.
There may now be multiple object sources files which are now built individually.

The build object sources must be built without source code files.
The logic is relocated into a fake_build_library_static_object() function to build the object files.
These files are then included when static linking.
A new build stage is also added to accommodate this.

Building the objects should not include libraries linked.
Remove the logic that auto-adds the library linkage when building objects.

Break out the "path_sources" Object into multiple sub-parts:
  - "path_sources_headers".
  - "path_sources_library".
  - "path_sources_object".
  - "path_sources_program".
  - "path_sources_script".

Update the documentation and specification files accordingly.

Add missing version dates to the specifications.

Update the bootstrap.sh script with these changes.
Fix incidental problems discovered in the bootstrap.sh script:
  - Remove already compiled warning as it is not needed and is not exhaustive.
  - Improve handling of directory detection and simplify the relating code.
  - The built setting files are now being properly checked (a regression caused them to not be properly checked).
35 files changed:
build/scripts/bootstrap.sh
build/stand_alone/fake.settings
level_3/fake/build/documentation/man/man1/fake.1
level_3/fake/build/documentation/man/man5/fake-defines.5
level_3/fake/build/documentation/man/man5/fake-depedencies.5
level_3/fake/build/documentation/man/man5/fake-fakefile.5
level_3/fake/build/documentation/man/man5/fake-settings.5
level_3/fake/c/main/build.c
level_3/fake/c/main/build.h
level_3/fake/c/main/build/library.c
level_3/fake/c/main/build/library.h
level_3/fake/c/main/build/load.c
level_3/fake/c/main/build/object.c
level_3/fake/c/main/build/object.h
level_3/fake/c/main/build/objects.c [deleted file]
level_3/fake/c/main/build/objects.h [deleted file]
level_3/fake/c/main/build/print/compile.c
level_3/fake/c/main/build/print/compile.h
level_3/fake/c/main/build/program.c
level_3/fake/c/main/build/string.c
level_3/fake/c/main/build/string.h
level_3/fake/c/main/common/type.c
level_3/fake/c/main/common/type.h
level_3/fake/c/main/fake.h
level_3/fake/data/build/settings
level_3/fake/data/documentation/man/man1/fake.1
level_3/fake/data/documentation/man/man5/fake-defines.5
level_3/fake/data/documentation/man/man5/fake-depedencies.5
level_3/fake/data/documentation/man/man5/fake-fakefile.5
level_3/fake/data/documentation/man/man5/fake-settings.5
level_3/fake/data/projects/example/return_code.fakefile
level_3/fake/specifications/defines.txt
level_3/fake/specifications/dependencies.txt
level_3/fake/specifications/fakefile.txt
level_3/fake/specifications/settings.txt