# fss-0001
#
# A custom build for compiling Featureless Make as a stand alone binary building in all of the FLL dependencies.
# This will compile a program that does not have a libfake.so library and builds all of the FLL dependencies into the resulting program.
#
# Modes:
#   - android:     Compile on an android system (using Termux; may need modification depending on the android system).
#   - clang:       Use CLang rather than the default, which is generally GCC.
#   - coverage:    Compile for building coverage.
#   - debug:       Enable debugging, such as compile time debug options.
#   - fanalyzer:   Compile using GCC's -fanalyzer compile time option.
#   - flex_arrays: Use GCC strict flex arrays (supported by GCC version 13 or greater).
#   - gcc:         Use GCC specific settings.
#   - pinephone:   Compile on a pinephone system.
#   - test:        Compile for a test, such as unit testing.
#   - thread:      Compile with thread support.
#   - threadless:  Compile without thread support.
#

build_name iki_read
stage stand_alone

version_major 0
version_minor 8
version_micro 1
version_file micro
version_target minor

modes android clang coverage debug fanalyzer flex_arrays gcc pinephone test thread threadless
modes_default debug gcc thread

build_compiler gcc
build_compiler-clang clang
build_indexer ar
build_indexer_arguments rcs
build_language c

build_libraries_shared -lc

build_libraries_static -l:libc.a

build_sources_program fll/level_0/color.c fll/level_0/private-color.c fll/level_0/color/common.c
build_sources_program fll/level_0/compare.c fll/level_0/compare/utf.c fll/level_0/private-compare.c fll/level_0/compare/private-utf.c
build_sources_program fll/level_0/console.c fll/level_0/console/common.c fll/level_0/private-console.c
build_sources_program fll/level_0/conversion.c fll/level_0/private-conversion.c fll/level_0/conversion/common.c
build_sources_program fll/level_0/file.c fll/level_0/private-file.c fll/level_0/file/common.c fll/level_0/file/stream.c
build_sources_program fll/level_0/iki.c fll/level_0/private-iki.c fll/level_0/iki/common.c fll/level_0/iki/private-data.c fll/level_0/iki/private-eki.c fll/level_0/iki/data.c fll/level_0/iki/eki.c

build_sources_program fll/level_0/memory.c fll/level_0/memory/array.c fll/level_0/memory/arrays.c
build_sources_program fll/level_0/private-memory.c fll/level_0/memory/private-array.c
build_sources_program fll/level_0/pipe.c
build_sources_program fll/level_0/print.c fll/level_0/private-print.c fll/level_0/print/common.c fll/level_0/print/to.c fll/level_0/print/private-to.c
build_sources_program fll/level_0/rip.c fll/level_0/rip/utf.c fll/level_0/private-rip.c fll/level_0/rip/private-utf.c
build_sources_program fll/level_0/signal.c
build_sources_program fll/level_0/string.c fll/level_0/private-string.c fll/level_0/string/common.c
build_sources_program fll/level_0/string/dynamic.c fll/level_0/string/dynamics.c fll/level_0/string/dynamicss.c fll/level_0/string/map.c fll/level_0/string/maps.c fll/level_0/string/mapss.c fll/level_0/string/map_multi.c fll/level_0/string/map_multis.c fll/level_0/string/map_multiss.c fll/level_0/string/static.c fll/level_0/string/statics.c fll/level_0/string/staticss.c fll/level_0/string/triple.c fll/level_0/string/triples.c fll/level_0/string/tripless.c
build_sources_program fll/level_0/type_array/cell.c fll/level_0/type_array/date.c fll/level_0/type_array/file.c fll/level_0/type_array/fll_id.c fll/level_0/type_array/int8.c fll/level_0/type_array/int16.c fll/level_0/type_array/int32.c fll/level_0/type_array/int64.c fll/level_0/type_array/int128.c fll/level_0/type_array/number_signed.c fll/level_0/type_array/number_unsigned.c fll/level_0/type_array/poll.c fll/level_0/type_array/quantity.c  fll/level_0/type_array/quantitys.c fll/level_0/type_array/quantityss.c fll/level_0/type_array/range.c  fll/level_0/type_array/ranges.c fll/level_0/type_array/rangess.c fll/level_0/type_array/state.c fll/level_0/type_array/status.c fll/level_0/type_array/time.c fll/level_0/type_array/uint8.c fll/level_0/type_array/uint16.c fll/level_0/type_array/uint32.c fll/level_0/type_array/uint64.c fll/level_0/type_array/uint128.c
build_sources_program fll/level_0/utf.c fll/level_0/private-utf.c fll/level_0/private-utf_alphabetic.c fll/level_0/private-utf_combining.c fll/level_0/private-utf_control.c fll/level_0/private-utf_digit.c fll/level_0/private-utf_emoji.c fll/level_0/private-utf_numeric.c fll/level_0/private-utf_phonetic.c fll/level_0/private-utf_private.c fll/level_0/private-utf_punctuation.c fll/level_0/private-utf_subscript.c fll/level_0/private-utf_superscript.c fll/level_0/private-utf_symbol.c fll/level_0/private-utf_unassigned.c fll/level_0/private-utf_valid.c fll/level_0/private-utf_whitespace.c fll/level_0/private-utf_wide.c fll/level_0/private-utf_word.c fll/level_0/private-utf_zero_width.c
build_sources_program fll/level_0/utf/common.c fll/level_0/utf/convert.c fll/level_0/utf/dynamic.c fll/level_0/utf/dynamics.c fll/level_0/utf/dynamicss.c fll/level_0/utf/is.c fll/level_0/utf/is_character.c fll/level_0/utf/map.c fll/level_0/utf/maps.c fll/level_0/utf/mapss.c fll/level_0/utf/map_multi.c fll/level_0/utf/map_multis.c fll/level_0/utf/map_multiss.c fll/level_0/utf/static.c fll/level_0/utf/statics.c fll/level_0/utf/staticss.c fll/level_0/utf/string.c fll/level_0/utf/triple.c fll/level_0/utf/triples.c fll/level_0/utf/tripless.c
build_sources_program fll/level_0/utf/private-dynamics.c fll/level_0/utf/private-maps.c fll/level_0/utf/private-map_multis.c fll/level_0/utf/private-string.c fll/level_0/utf/private-triples.c

build_sources_program-thread fll/level_0/thread.c
build_sources_program-thread fll/level_0/thread/attribute.c fll/level_0/thread/attributes.c fll/level_0/thread/attributess.c
build_sources_program-thread fll/level_0/thread/barrier.c fll/level_0/thread/barriers.c fll/level_0/thread/barrierss.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/barrier_attributes.c fll/level_0/thread/barrier_attributess.c fll/level_0/thread/barrier_full.c fll/level_0/thread/barrier_fulls.c fll/level_0/thread/barrier_fullss.c
build_sources_program-thread fll/level_0/thread/common.c
build_sources_program-thread fll/level_0/thread/condition.c fll/level_0/thread/conditions.c fll/level_0/thread/conditionss.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/condition_attributes.c fll/level_0/thread/condition_attributess.c fll/level_0/thread/condition_full.c fll/level_0/thread/condition_fulls.c fll/level_0/thread/condition_fullss.c
build_sources_program-thread fll/level_0/thread/id.c fll/level_0/thread/ids.c fll/level_0/thread/idss.c
build_sources_program-thread fll/level_0/thread/key.c fll/level_0/thread/keys.c fll/level_0/thread/keyss.c
build_sources_program-thread fll/level_0/thread/lock.c fll/level_0/thread/locks.c fll/level_0/thread/lockss.c fll/level_0/thread/lock_attribute.c fll/level_0/thread/lock_attributes.c fll/level_0/thread/lock_attributess.c fll/level_0/thread/lock_full.c fll/level_0/thread/lock_fulls.c fll/level_0/thread/lock_fullss.c
build_sources_program-thread fll/level_0/thread/mutex.c fll/level_0/thread/mutexs.c fll/level_0/thread/mutexss.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/mutex_attributes.c fll/level_0/thread/mutex_attributess.c fll/level_0/thread/mutex_full.c fll/level_0/thread/mutex_fulls.c fll/level_0/thread/mutex_fullss.c
build_sources_program-thread fll/level_0/thread/once.c fll/level_0/thread/onces.c fll/level_0/thread/oncess.c
build_sources_program-thread fll/level_0/thread/semaphore.c fll/level_0/thread/semaphores.c fll/level_0/thread/semaphoress.c
build_sources_program-thread fll/level_0/thread/spin.c fll/level_0/thread/spins.c fll/level_0/thread/spinss.c

build_sources_program fll/level_1/conversion.c fll/level_1/private-conversion.c fll/level_1/conversion/common.c
build_sources_program fll/level_1/iki.c
build_sources_program fll/level_1/print.c fll/level_1/private-print.c fll/level_1/print/common.c

build_sources_program fll/level_2/error.c fll/level_2/private-error.c fll/level_2/error/common.c fll/level_2/error/string.c
build_sources_program fll/level_2/print.c
build_sources_program fll/level_2/program.c fll/level_2/program/common.c fll/level_2/program/print.c fll/level_2/program/string.c fll/level_2/private-program.c

build_sources_program program/iki_read/main/iki_read.c program/iki_read/main/common.c program/iki_read/main/identify.c program/iki_read/main/common/define.c program/iki_read/main/common/enumeration.c program/iki_read/main/common/string.c program/iki_read/main/common/type.c program/iki_read/main/print/data.c program/iki_read/main/print/error.c program/iki_read/main/print/message.c program/iki_read/main/process.c program/iki_read/main/signal.c program/iki_read/main/thread.c

build_sources_program program/iki_read/iki/common.c program/iki_read/iki/identify.c program/iki_read/iki/iki_read.c program/iki_read/iki/print.c program/iki_read/iki/process.c

build_sources_program program/iki_read/iki/config.c program/iki_read/iki/main.c

build_sources_documentation man

build_static no

path_headers fll

environment PATH LD_LIBRARY_PATH
environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH

defines -include sources/c/config.h -I sources/c/
#defines -D_f_file_rename_use_renameat2_
defines-android -D_di_f_thread_attribute_affinity_get_ -D_di_f_thread_attribute_affinity_set_ -D_di_f_thread_attribute_concurrency_get_ -D_di_f_thread_attribute_concurrency_set_ -D_di_f_thread_attribute_default_get_ -D_di_f_thread_attribute_default_set_ -D_di_f_thread_cancel_test_ -D_di_f_thread_join_try_ -D_di_f_thread_join_timed_ -D_pthread_mutex_prioceiling_unsupported_ -D_di_f_thread_semaphore_file_close_ -D_di_f_thread_semaphore_file_open_ -D_di_f_thread_semaphore_file_delete_ -D_di_f_thread_cancel_type_set_  -D_di_f_thread_mutex_consistent_ -D_di_f_thread_mutex_attribute_robust_get_ -D_di_f_thread_mutex_attribute_robust_set_ -D_pthread_kill_as_pthread_cancel_
defines-clang -D_clang_not_a_compile_time_constant_workaround_
defines-debug -D_en_f_status_debug_
defines-pinephone -D_di_f_thread_mutex_priority_ceiling_get_ -D_di_f_thread_mutex_priority_ceiling_set_ -D_di_f_thread_mutex_attribute_priority_ceiling_get_ -D_di_f_thread_mutex_attribute_priority_ceiling_set_
defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
defines-threadless -D_di_thread_support_

flags -O2 -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces -Wno-main
flags -fstack-clash-protection -fno-delete-null-pointer-checks
flags -Wl,-z,nodlopen -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
flags-android -Wno-implicit-function-declaration -Wl,-z,norelro
flags-clang -Wno-logical-op-parentheses
flags-coverage -O0 --coverage -fprofile-abs-path -fprofile-dir=build/coverage/
flags-fanalyzer -fanalyzer
flags-flex_arrays -fstrict-flex-arrays=3
flags-test -O0 -fstack-protector-strong -Wall
flags-thread -pthread

flags_library -fPIC
flags_object -fPIC
flags_program -fPIE
flags_program-android -fPIE -Wl,-z,relro
