There are some defines that need to be manually removed if they don't belong, such as "_di_pthread_support_" and "_di_libcap_".
Use these files to construct a list of all defines to potentially disable based on the "dependencies" of a given project.
+Consider the following example using the fake dependencies for the stand alone builds.
+
+# echo $(cat level_3/fake/data/build/dependencies)
+
+Which prints:
+ # fss-0000 f_type f_status f_memory f_type_array f_string f_utf f_account f_capability f_color f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_path f_pipe f_print f_signal fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_print fl_string fll_error fll_execute fll_file fll_fss fll_path fll_print fll_program
+
+From this list, build the level_0:
+
+# for i in f_type f_status f_memory f_type_array f_string f_utf f_account f_capability f_color f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_path f_pipe f_print f_signal ; do if [[ -f build/disable/level_0/$i.h ]] ; then echo >> build/stand_alone/fake.config.h && cat build/disable/level_0/$i.h >> build/stand_alone/fake.config.h ; fi ; done
+
+From the list, build the level_1:
+
+# for i in fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_print fl_string ; do if [[ -f build/disable/level_1/$i.h ]] ; then echo >> build/stand_alone/fake.config.h && cat build/disable/level_1/$i.h >> build/stand_alone/fake.config.h ; fi ; done
+
+From the list, build the level_2:
+
+# for i in fll_error fll_execute fll_file fll_fss fll_path fll_print fll_program ; do if [[ -f build/disable/level_2/$i.h ]] ; then echo >> build/stand_alone/fake.config.h && cat build/disable/level_2/$i.h >> build/stand_alone/fake.config.h ; fi ; done
+
+Then compile the stand alone build and comment out each disable causing a compile failure until compilation succeeds.