# fss-0001
#
# 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.
#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
#   - level:             Compile using per level libraries.
#   - monolithic:        Compile using per monolithic libraries.
#   - 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.
#
# Note: This adds "individual" and "level" for consistency reasons. This should never use "individual" or "level".
#

build_name fll

version_major 0
version_minor 8
version_micro 1
version_file micro
version_target minor

modes android clang coverage debug fanalyzer flex_arrays gcc individual individual_thread level monolithic pinephone test thread threadless
modes_default debug gcc monolithic thread

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

build_libraries_shared -lc -lcap

build_libraries_static -l:libc.a -l:libcap.a

build_sources_headers level_0/abstruse.h level_0/abstruse/abstruse.h level_0/abstruse/enum.h level_0/abstruse/map.h level_0/abstruse/type.h
build_sources_headers level_0/account.h level_0/account/accounts.h level_0/account/common.h
build_sources_headers level_0/capability.h level_0/capability/common.h
build_sources_headers level_0/color.h level_0/color/common.h
build_sources_headers level_0/compare.h level_0/compare/utf.h
build_sources_headers level_0/console.h level_0/console/common.h
build_sources_headers level_0/control_group.h level_0/control_group/common.h
build_sources_headers level_0/conversion.h level_0/conversion/common.h
build_sources_headers level_0/directory.h level_0/directory/common.h level_0/directory/listing.h level_0/directory/recurse_do.h level_0/directory/status.h
build_sources_headers level_0/environment.h level_0/environment/common.h
build_sources_headers level_0/execute.h level_0/execute/common.h
build_sources_headers level_0/file.h level_0/file/common.h level_0/file/stream.h
build_sources_headers level_0/fss.h level_0/fss/common.h level_0/fss/item.h level_0/fss/named.h level_0/fss/nest.h level_0/fss/payload.h level_0/fss/quote.h level_0/fss/set.h level_0/fss/set_quote.h level_0/fss/simple_packet.h
build_sources_headers level_0/iki.h level_0/iki/common.h level_0/iki/data.h level_0/iki/eki.h
build_sources_headers level_0/limit.h level_0/limit/set.h level_0/limit/value.h
build_sources_headers level_0/memory.h level_0/memory/array.h level_0/memory/arrays.h level_0/memory/common.h
build_sources_headers level_0/network.h level_0/network/common.h
build_sources_headers level_0/parse.h level_0/parse/utf.h
build_sources_headers level_0/path.h level_0/path/common.h
build_sources_headers level_0/pipe.h
build_sources_headers level_0/print.h level_0/print/to.h level_0/print/common.h
build_sources_headers level_0/random.h level_0/random/common.h
build_sources_headers level_0/rip.h level_0/rip/utf.h
build_sources_headers level_0/serialize.h level_0/serialize/common.h
build_sources_headers level_0/signal.h level_0/signal/common.h
build_sources_headers level_0/socket.h level_0/socket/address.h level_0/socket/socket.h level_0/socket/common.h
build_sources_headers level_0/status.h
build_sources_headers level_0/status_string.h
build_sources_headers level_0/string.h level_0/string/common.h
build_sources_headers level_0/string/dynamic.h level_0/string/dynamics.h level_0/string/dynamicss.h
build_sources_headers level_0/string/map.h level_0/string/maps.h level_0/string/mapss.h
build_sources_headers level_0/string/map_multi.h level_0/string/map_multis.h level_0/string/map_multiss.h
build_sources_headers level_0/string/static.h level_0/string/statics.h level_0/string/staticss.h
build_sources_headers level_0/string/triple.h level_0/string/triples.h level_0/string/tripless.h
build_sources_headers level_0/time.h level_0/time/common.h
build_sources_headers level_0/type.h level_0/type/cell.h level_0/type/date.h level_0/type/file.h level_0/type/fll.h level_0/type/handle.h level_0/type/mode.h level_0/type/number.h level_0/type/pid.h level_0/type/quantity.h level_0/type/range.h level_0/type/range_double.h level_0/type/state.h level_0/type/status.h level_0/type/time.h level_0/type/void.h
build_sources_headers level_0/type_array.h level_0/type_array_file.h level_0/type_array/common.h level_0/type_array/cell.h level_0/type_array/date.h level_0/type_array/file.h level_0/type_array/fll_id.h level_0/type_array/int8.h level_0/type_array/int16.h level_0/type_array/int32.h level_0/type_array/int64.h level_0/type_array/int128.h level_0/type_array/number_signed.h level_0/type_array/number_unsigned.h level_0/type_array/pid.h level_0/type_array/poll.h level_0/type_array/quantity.h level_0/type_array/quantitys.h level_0/type_array/quantityss.h level_0/type_array/range.h level_0/type_array/ranges.h level_0/type_array/rangess.h level_0/type_array/range_double.h level_0/type_array/range_doubles.h level_0/type_array/range_doubless.h level_0/type_array/state.h level_0/type_array/status.h level_0/type_array/time.h level_0/type_array/uint8.h level_0/type_array/uint16.h level_0/type_array/uint32.h level_0/type_array/uint64.h level_0/type_array/uint128.h
build_sources_headers level_0/utf.h level_0/utf/common.h level_0/utf/convert.h level_0/utf/dynamic.h level_0/utf/dynamics.h level_0/utf/dynamicss.h level_0/utf/is.h level_0/utf/is_character.h level_0/utf/map.h level_0/utf/maps.h level_0/utf/mapss.h level_0/utf/map_multi.h level_0/utf/map_multis.h level_0/utf/map_multiss.h level_0/utf/static.h level_0/utf/statics.h level_0/utf/staticss.h level_0/utf/string.h level_0/utf/triple.h level_0/utf/triples.h level_0/utf/tripless.h

build_sources_headers level_1/control_group.h
build_sources_headers level_1/conversion.h level_1/conversion/common.h
build_sources_headers level_1/directory.h level_1/directory/common.h
build_sources_headers level_1/environment.h
build_sources_headers level_1/execute.h level_1/execute/common.h
build_sources_headers level_1/fss.h level_1/fss/basic.h level_1/fss/basic_list.h level_1/fss/embedded_list.h level_1/fss/extended.h level_1/fss/extended_list.h level_1/fss/payload.h level_1/fss/payload/define.h level_1/fss/payload/type.h
build_sources_headers level_1/iki.h
build_sources_headers level_1/path.h
build_sources_headers level_1/print.h level_1/print/common.h
build_sources_headers level_1/status_string.h
build_sources_headers level_1/utf_file.h

build_sources_headers level_2/control_group.h
build_sources_headers level_2/error.h level_2/error/common.h level_2/error/string.h
build_sources_headers level_2/execute.h
build_sources_headers level_2/file.h
build_sources_headers level_2/fss.h level_2/fss/basic.h level_2/fss/basic_list.h level_2/fss/embedded_list.h level_2/fss/extended.h level_2/fss/extended_list.h level_2/fss/payload.h
build_sources_headers level_2/fss_status_string.h
build_sources_headers level_2/iki.h
build_sources_headers level_2/print.h
build_sources_headers level_2/program.h level_2/program/common.h level_2/program/print.h level_2/program/string.h

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

build_sources_library level_0/abstruse.c level_0/abstruse/abstruse.c level_0/abstruse/map.c level_0/abstruse/private-abstruse.c
build_sources_library level_0/account.c level_0/private-account.c level_0/account/accounts.c
build_sources_library level_0/capability.c
build_sources_library level_0/color.c level_0/private-color.c level_0/color/common.c
build_sources_library level_0/compare.c level_0/compare/utf.c level_0/private-compare.c level_0/compare/private-utf.c
build_sources_library level_0/console.c level_0/console/common.c level_0/private-console.c
build_sources_library level_0/control_group.c level_0/control_group/common.c
build_sources_library level_0/conversion.c level_0/private-conversion.c level_0/conversion/common.c
build_sources_library level_0/directory.c level_0/directory/common.c level_0/directory/listing.c level_0/directory/recurse_do.c level_0/directory/status.c
build_sources_library level_0/private-directory.c
build_sources_library level_0/environment.c
build_sources_library level_0/execute.c
build_sources_library level_0/file.c level_0/private-file.c level_0/file/common.c level_0/file/stream.c
build_sources_library level_0/fss.c level_0/fss/common.c level_0/fss/item.c level_0/fss/named.c level_0/fss/nest.c level_0/fss/payload.c level_0/fss/quote.c level_0/fss/set.c level_0/fss/set_quote.c level_0/fss/simple_packet.c
build_sources_library level_0/iki.c level_0/iki/common.c level_0/iki/data.c level_0/iki/eki.c level_0/private-iki.c level_0/iki/private-data.c level_0/iki/private-eki.c
build_sources_library level_0/limit.c level_0/limit/set.c level_0/limit/value.c
build_sources_library level_0/memory.c level_0/memory/array.c level_0/memory/arrays.c
build_sources_library level_0/private-memory.c level_0/memory/private-array.c
build_sources_library level_0/network.c
build_sources_library level_0/parse.c level_0/parse/utf.c
build_sources_library level_0/path.c level_0/private-path.c level_0/path/common.c
build_sources_library level_0/pipe.c
build_sources_library level_0/print.c level_0/private-print.c level_0/print/common.c level_0/print/to.c level_0/print/private-to.c
build_sources_library level_0/random.c
build_sources_library level_0/rip.c level_0/rip/utf.c level_0/private-rip.c level_0/rip/private-utf.c
build_sources_library level_0/serialize.c level_0/private-serialize.c level_0/serialize/common.c
build_sources_library level_0/signal.c
build_sources_library level_0/socket.c level_0/socket/address.c level_0/socket/socket.c
build_sources_library level_0/status_string.c
build_sources_library level_0/string.c
build_sources_library level_0/private-string.c level_0/string/common.c
build_sources_library level_0/string/dynamic.c level_0/string/dynamics.c level_0/string/dynamicss.c
build_sources_library level_0/string/map.c level_0/string/maps.c level_0/string/mapss.c
build_sources_library level_0/string/map_multi.c level_0/string/map_multis.c level_0/string/map_multiss.c
build_sources_library level_0/string/static.c level_0/string/statics.c level_0/string/staticss.c
build_sources_library level_0/string/triple.c level_0/string/triples.c level_0/string/tripless.c
build_sources_library level_0/time.c
build_sources_library level_0/type_array/cell.c level_0/type_array/date.c level_0/type_array/file.c level_0/type_array/fll_id.c level_0/type_array/int8.c level_0/type_array/int16.c level_0/type_array/int32.c level_0/type_array/int64.c level_0/type_array/int128.c level_0/type_array/number_signed.c level_0/type_array/number_unsigned.c level_0/type_array/pid.c level_0/type_array/poll.c level_0/type_array/quantity.c level_0/type_array/quantitys.c level_0/type_array/quantityss.c level_0/type_array/range.c level_0/type_array/ranges.c level_0/type_array/rangess.c level_0/type_array/range_double.c level_0/type_array/range_doubles.c level_0/type_array/range_doubless.c level_0/type_array/state.c level_0/type_array/status.c level_0/type_array/time.c level_0/type_array/uint8.c level_0/type_array/uint16.c level_0/type_array/uint32.c level_0/type_array/uint64.c level_0/type_array/uint128.c
build_sources_library level_0/utf.c level_0/private-utf.c level_0/private-utf_alphabetic.c level_0/private-utf_combining.c level_0/private-utf_control.c level_0/private-utf_digit.c level_0/private-utf_emoji.c level_0/private-utf_numeric.c level_0/private-utf_phonetic.c level_0/private-utf_private.c level_0/private-utf_punctuation.c level_0/private-utf_subscript.c level_0/private-utf_superscript.c level_0/private-utf_symbol.c level_0/private-utf_unassigned.c level_0/private-utf_valid.c level_0/private-utf_whitespace.c level_0/private-utf_wide.c level_0/private-utf_word.c level_0/private-utf_zero_width.c
build_sources_library level_0/utf/common.c level_0/utf/convert.c
build_sources_library level_0/utf/dynamic.c level_0/utf/dynamics.c level_0/utf/dynamicss.c
build_sources_library level_0/utf/is.c level_0/utf/is_character.c
build_sources_library level_0/utf/map.c level_0/utf/maps.c level_0/utf/mapss.c
build_sources_library level_0/utf/map_multi.c level_0/utf/map_multis.c level_0/utf/map_multiss.c
build_sources_library level_0/utf/static.c level_0/utf/statics.c level_0/utf/staticss.c
build_sources_library level_0/utf/string.c level_0/utf/triple.c level_0/utf/triples.c level_0/utf/tripless.c
build_sources_library level_0/utf/private-dynamics.c level_0/utf/private-maps.c level_0/utf/private-map_multis.c level_0/utf/private-string.c level_0/utf/private-triples.c

build_sources_library level_1/control_group.c
build_sources_library level_1/conversion.c level_1/private-conversion.c level_1/conversion/common.c
build_sources_library level_1/directory.c level_1/private-directory.c
build_sources_library level_1/environment.c
build_sources_library level_1/private-fss.c level_1/private-fss-list.c level_1/fss/basic.c level_1/fss/basic_list.c level_1/fss/embedded_list.c level_1/fss/extended.c level_1/fss/extended_list.c level_1/fss/payload.c level_1/fss/private-payload.c level_1/fss/private-payload-helper.c
build_sources_library level_1/iki.c
build_sources_library level_1/path.c
build_sources_library level_1/print.c level_1/private-print.c level_1/print/common.c
build_sources_library level_1/status_string.c
build_sources_library level_1/utf_file.c level_1/private-utf_file.c

build_sources_library level_2/control_group.c
build_sources_library level_2/error.c level_2/error/common.c level_2/error/string.c level_2/private-error.c
build_sources_library level_2/execute.c level_2/private-execute.c
build_sources_library level_2/file.c level_2/private-file.c
build_sources_library level_2/fss.c level_2/fss/basic.c level_2/fss/basic_list.c level_2/fss/embedded_list.c level_2/fss/extended.c level_2/fss/extended_list.c level_2/fss/payload.c
build_sources_library level_2/fss_status_string.c
build_sources_library level_2/iki.c level_2/private-iki.c
build_sources_library level_2/print.c
build_sources_library level_2/program.c level_2/program/common.c level_2/program/print.c level_2/program/string.c level_2/private-program.c

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

build_sources_library config.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 -D_di_libcap_
#defines -D_f_file_rename_use_renameat2_
#defines -D_pthread_getname_np_unsupported_ -D_pthread_setname_np_unsupported_
defines -D_libcap_legacy_only_
defines -D_en_use_syscall_pidfd_getfd_ -D_en_use_syscall_pidfd_open_ -D_en_use_syscall_pidfd_send_signal_
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 -Wall
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-fanalyzer -fanalyzer
flags-flex_arrays -fstrict-flex-arrays=3
flags-test -fstack-protector-strong -Wall
flags-thread -pthread

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