Changed first build methodology
This commit is contained in:
parent
0cc1077c47
commit
ac37350105
17 changed files with 849 additions and 203 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -2,6 +2,8 @@
|
||||||
# and is not intended for human editing
|
# and is not intended for human editing
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
inweb.mk
|
||||||
|
platform-settings.mk
|
||||||
Manual.html
|
Manual.html
|
||||||
debug-log.txt
|
debug-log.txt
|
||||||
tags
|
tags
|
||||||
|
@ -16,7 +18,6 @@ Tests/hashes.intest
|
||||||
Tests/_Results_Actual/
|
Tests/_Results_Actual/
|
||||||
foundation-test/foundation-test.mk
|
foundation-test/foundation-test.mk
|
||||||
foundation-test/Tests/Test Cases/_Results_Actual/
|
foundation-test/Tests/Test Cases/_Results_Actual/
|
||||||
platform-settings.mk
|
|
||||||
foundation-module/Woven/
|
foundation-module/Woven/
|
||||||
Examples/*.o
|
Examples/*.o
|
||||||
Examples/*.pdf
|
Examples/*.pdf
|
||||||
|
|
|
@ -40,6 +40,7 @@ typedef struct inweb_instructions {
|
||||||
struct filename *colony_setting; /* |-colony X|: the filename X, if supplied */
|
struct filename *colony_setting; /* |-colony X|: the filename X, if supplied */
|
||||||
struct text_stream *member_setting; /* |-member X|: sets web to member X of colony */
|
struct text_stream *member_setting; /* |-member X|: sets web to member X of colony */
|
||||||
struct linked_list *breadcrumb_setting; /* of |breadcrumb_request| */
|
struct linked_list *breadcrumb_setting; /* of |breadcrumb_request| */
|
||||||
|
struct text_stream *platform_setting; /* |-platform X|: sets prevailing platform to X */
|
||||||
int verbose_switch; /* |-verbose|: print names of files read to stdout */
|
int verbose_switch; /* |-verbose|: print names of files read to stdout */
|
||||||
int targets; /* used only for parsing */
|
int targets; /* used only for parsing */
|
||||||
|
|
||||||
|
@ -102,6 +103,7 @@ inweb_instructions Configuration::read(int argc, char **argv) {
|
||||||
args.colony_setting = NULL;
|
args.colony_setting = NULL;
|
||||||
args.member_setting = NULL;
|
args.member_setting = NULL;
|
||||||
args.breadcrumb_setting = NEW_LINKED_LIST(breadcrumb_request);
|
args.breadcrumb_setting = NEW_LINKED_LIST(breadcrumb_request);
|
||||||
|
args.platform_setting = NULL;
|
||||||
args.tag_setting = Str::new();
|
args.tag_setting = Str::new();
|
||||||
args.weave_pattern = Str::new();
|
args.weave_pattern = Str::new();
|
||||||
args.import_setting = NULL;
|
args.import_setting = NULL;
|
||||||
|
@ -133,6 +135,7 @@ provides automatically.
|
||||||
@e GITIGNORE_CLSW
|
@e GITIGNORE_CLSW
|
||||||
@e MAKEFILE_CLSW
|
@e MAKEFILE_CLSW
|
||||||
@e WRITEME_CLSW
|
@e WRITEME_CLSW
|
||||||
|
@e PLATFORM_CLSW
|
||||||
@e ADVANCE_FILE_CLSW
|
@e ADVANCE_FILE_CLSW
|
||||||
@e PROTOTYPE_CLSW
|
@e PROTOTYPE_CLSW
|
||||||
@e SCAN_CLSW
|
@e SCAN_CLSW
|
||||||
|
@ -203,6 +206,8 @@ provides automatically.
|
||||||
L"increment daily build code in file X");
|
L"increment daily build code in file X");
|
||||||
CommandLine::declare_switch(WRITEME_CLSW, L"write-me", 2,
|
CommandLine::declare_switch(WRITEME_CLSW, L"write-me", 2,
|
||||||
L"write a read-me file following instructions in file X");
|
L"write a read-me file following instructions in file X");
|
||||||
|
CommandLine::declare_switch(PLATFORM_CLSW, L"platform", 2,
|
||||||
|
L"use platform X (e.g. 'windows') when making e.g. makefiles");
|
||||||
CommandLine::declare_switch(PROTOTYPE_CLSW, L"prototype", 2,
|
CommandLine::declare_switch(PROTOTYPE_CLSW, L"prototype", 2,
|
||||||
L"translate makefile from prototype X");
|
L"translate makefile from prototype X");
|
||||||
CommandLine::declare_switch(FUNCTIONS_CLSW, L"functions", 1,
|
CommandLine::declare_switch(FUNCTIONS_CLSW, L"functions", 1,
|
||||||
|
@ -307,6 +312,9 @@ void Configuration::switch(int id, int val, text_stream *arg, void *state) {
|
||||||
if (args->inweb_mode != TRANSLATE_MODE)
|
if (args->inweb_mode != TRANSLATE_MODE)
|
||||||
Configuration::set_fundamental_mode(args, ANALYSE_MODE);
|
Configuration::set_fundamental_mode(args, ANALYSE_MODE);
|
||||||
break;
|
break;
|
||||||
|
case PLATFORM_CLSW:
|
||||||
|
args->platform_setting = Str::duplicate(arg);
|
||||||
|
break;
|
||||||
case ADVANCE_FILE_CLSW:
|
case ADVANCE_FILE_CLSW:
|
||||||
args->advance_setting = Filenames::from_text(arg);
|
args->advance_setting = Filenames::from_text(arg);
|
||||||
Configuration::set_fundamental_mode(args, TRANSLATE_MODE);
|
Configuration::set_fundamental_mode(args, TRANSLATE_MODE);
|
||||||
|
|
|
@ -120,7 +120,7 @@ void Main::follow_instructions(inweb_instructions *ins) {
|
||||||
ins->prototype_setting = Filenames::from_text(I"script.rmscript");
|
ins->prototype_setting = Filenames::from_text(I"script.rmscript");
|
||||||
if (ins->makefile_setting)
|
if (ins->makefile_setting)
|
||||||
Makefiles::write(W, ins->prototype_setting, ins->makefile_setting,
|
Makefiles::write(W, ins->prototype_setting, ins->makefile_setting,
|
||||||
WebModules::make_search_path(ins->import_setting));
|
WebModules::make_search_path(ins->import_setting), ins->platform_setting);
|
||||||
else if (ins->gitignore_setting)
|
else if (ins->gitignore_setting)
|
||||||
Git::write_gitignore(W, ins->prototype_setting, ins->gitignore_setting);
|
Git::write_gitignore(W, ins->prototype_setting, ins->gitignore_setting);
|
||||||
else if (ins->advance_setting)
|
else if (ins->advance_setting)
|
||||||
|
@ -171,7 +171,7 @@ void Main::follow_instructions(inweb_instructions *ins) {
|
||||||
Analyser::catalogue_the_sections(W, ins->chosen_range, STRUCTURES_SECTIONCAT);
|
Analyser::catalogue_the_sections(W, ins->chosen_range, STRUCTURES_SECTIONCAT);
|
||||||
if (ins->makefile_setting)
|
if (ins->makefile_setting)
|
||||||
Analyser::write_makefile(W, ins->makefile_setting,
|
Analyser::write_makefile(W, ins->makefile_setting,
|
||||||
WebModules::make_search_path(ins->import_setting));
|
WebModules::make_search_path(ins->import_setting), ins->platform_setting);
|
||||||
if (ins->gitignore_setting)
|
if (ins->gitignore_setting)
|
||||||
Analyser::write_gitignore(W, ins->gitignore_setting);
|
Analyser::write_gitignore(W, ins->gitignore_setting);
|
||||||
if (ins->advance_switch)
|
if (ins->advance_switch)
|
||||||
|
|
|
@ -389,7 +389,7 @@ The work here is all delegated. In each case we look for a script in the web's
|
||||||
folder: failing that, we fall back on a default script belonging to Inweb.
|
folder: failing that, we fall back on a default script belonging to Inweb.
|
||||||
|
|
||||||
=
|
=
|
||||||
void Analyser::write_makefile(web *W, filename *F, module_search *I) {
|
void Analyser::write_makefile(web *W, filename *F, module_search *I, text_stream *platform) {
|
||||||
pathname *P = W->md->path_to_web;
|
pathname *P = W->md->path_to_web;
|
||||||
text_stream *short_name = Pathnames::directory_name(P);
|
text_stream *short_name = Pathnames::directory_name(P);
|
||||||
if ((Str::len(short_name) == 0) ||
|
if ((Str::len(short_name) == 0) ||
|
||||||
|
@ -401,7 +401,7 @@ void Analyser::write_makefile(web *W, filename *F, module_search *I) {
|
||||||
DISCARD_TEXT(leafname)
|
DISCARD_TEXT(leafname)
|
||||||
if (!(TextFiles::exists(prototype)))
|
if (!(TextFiles::exists(prototype)))
|
||||||
prototype = Filenames::in(path_to_inweb_materials, I"default.mkscript");
|
prototype = Filenames::in(path_to_inweb_materials, I"default.mkscript");
|
||||||
Makefiles::write(W, prototype, F, I);
|
Makefiles::write(W, prototype, F, I, platform);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Analyser::write_gitignore(web *W, filename *F) {
|
void Analyser::write_gitignore(web *W, filename *F) {
|
||||||
|
|
|
@ -9,7 +9,8 @@ special loop construct.
|
||||||
For the syntax being worked through, see //Webs, Tangling and Weaving//.
|
For the syntax being worked through, see //Webs, Tangling and Weaving//.
|
||||||
|
|
||||||
=
|
=
|
||||||
void Makefiles::write(web *W, filename *prototype, filename *F, module_search *I) {
|
void Makefiles::write(web *W, filename *prototype, filename *F, module_search *I,
|
||||||
|
text_stream *platform) {
|
||||||
linked_list *L = NEW_LINKED_LIST(preprocessor_macro);
|
linked_list *L = NEW_LINKED_LIST(preprocessor_macro);
|
||||||
Preprocessor::new_macro(L,
|
Preprocessor::new_macro(L,
|
||||||
I"platform-settings", NULL,
|
I"platform-settings", NULL,
|
||||||
|
@ -49,6 +50,7 @@ typedef struct makefile_specifics {
|
||||||
struct dictionary *webs_dictionary; /* components with |type: web| */
|
struct dictionary *webs_dictionary; /* components with |type: web| */
|
||||||
struct dictionary *modules_dictionary; /* components with |type: module| */
|
struct dictionary *modules_dictionary; /* components with |type: module| */
|
||||||
struct module_search *search_path;
|
struct module_search *search_path;
|
||||||
|
struct text_stream *which_platform;
|
||||||
CLASS_DEFINITION
|
CLASS_DEFINITION
|
||||||
} makefile_specifics;
|
} makefile_specifics;
|
||||||
|
|
||||||
|
@ -58,6 +60,7 @@ typedef struct makefile_specifics {
|
||||||
specifics->webs_dictionary = Dictionaries::new(16, FALSE);
|
specifics->webs_dictionary = Dictionaries::new(16, FALSE);
|
||||||
specifics->modules_dictionary = Dictionaries::new(16, FALSE);
|
specifics->modules_dictionary = Dictionaries::new(16, FALSE);
|
||||||
specifics->search_path = I;
|
specifics->search_path = I;
|
||||||
|
specifics->which_platform = platform;
|
||||||
|
|
||||||
@h The identity-settings expander.
|
@h The identity-settings expander.
|
||||||
|
|
||||||
|
@ -86,10 +89,13 @@ for that platform.
|
||||||
=
|
=
|
||||||
void Makefiles::platform_settings_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
void Makefiles::platform_settings_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
||||||
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
||||||
filename *prototype = Filenames::in(path_to_inweb, I"platform-settings.mk");
|
makefile_specifics *specifics = RETRIEVE_POINTER_makefile_specifics(PPS->specifics);
|
||||||
text_stream *INWEBPLATFORM = Str::new();
|
text_stream *INWEBPLATFORM = Str::duplicate(specifics->which_platform);
|
||||||
TextFiles::read(prototype, FALSE, "can't open platform settings file",
|
if (Str::len(INWEBPLATFORM) == 0) {
|
||||||
TRUE, Makefiles::seek_INWEBPLATFORM, NULL, INWEBPLATFORM);
|
filename *ps = Filenames::in(path_to_inweb, I"platform-settings.mk");
|
||||||
|
TextFiles::read(ps, FALSE, "can't open platform settings file",
|
||||||
|
TRUE, Makefiles::seek_INWEBPLATFORM, NULL, INWEBPLATFORM);
|
||||||
|
}
|
||||||
if (Str::len(INWEBPLATFORM) == 0) {
|
if (Str::len(INWEBPLATFORM) == 0) {
|
||||||
Errors::in_text_file(
|
Errors::in_text_file(
|
||||||
"found platform settings file, but it does not set INWEBPLATFORM", tfp);
|
"found platform settings file, but it does not set INWEBPLATFORM", tfp);
|
||||||
|
|
146
Materials/platforms/inweb-on-linux.mk
Normal file
146
Materials/platforms/inweb-on-linux.mk
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
# This makefile was automatically written by inweb -makefile
|
||||||
|
# and is not intended for human editing
|
||||||
|
|
||||||
|
INWEBPLATFORM = linux
|
||||||
|
|
||||||
|
INFORM6OS = LINUX
|
||||||
|
|
||||||
|
GLULXEOS = OS_UNIX
|
||||||
|
|
||||||
|
EXEEXTENSION =
|
||||||
|
|
||||||
|
INTEST = intest/Tangled/intest
|
||||||
|
INWEB = inweb/Tangled/inweb
|
||||||
|
|
||||||
|
GCCWARNINGS = -Wall -Wextra -Wno-pointer-to-int-cast -Wno-unused-parameter -Wno-unused-but-set-variable -Wno-unknown-pragmas
|
||||||
|
|
||||||
|
ME = inweb
|
||||||
|
FTEST = $(ME)/foundation-test
|
||||||
|
SAFETYCOPY = $(ME)/Tangled/inweb_dev
|
||||||
|
|
||||||
|
COLONY = $(ME)/colony.txt
|
||||||
|
|
||||||
|
-include $(ME)/platform-settings.mk
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
|
||||||
|
all: $(ME)/platform-settings.mk $(ME)/Tangled/$(ME) $(FTEST)/Tangled/foundation-test
|
||||||
|
|
||||||
|
$(ME)/Tangled/$(ME): $(ME)/Contents.w $(ME)/Chapter*/*.w $(ME)/foundation-module/Contents.w $(ME)/foundation-module/Chapter*/*.w
|
||||||
|
$(call make-me)
|
||||||
|
|
||||||
|
$(FTEST)/Tangled/foundation-test: $(FTEST)/Contents.w $(FTEST)/Sections/*.w $(ME)/foundation-module/Contents.w $(ME)/foundation-module/Chapter*/*.w
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: force
|
||||||
|
force: $(ME)/platform-settings.mk
|
||||||
|
$(call make-me)
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: makers
|
||||||
|
makers:
|
||||||
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/macos.mkscript -makefile $(ME)/Materials/platforms/macos.mk
|
||||||
|
$(INWEB) -platform macos -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-macos.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/macos32.mkscript -makefile $(ME)/Materials/platforms/macos32.mk
|
||||||
|
$(INWEB) -platform macos32 -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-macos32.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/windows.mkscript -makefile $(ME)/Materials/platforms/windows.mk
|
||||||
|
$(INWEB) -platform windows -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-windows.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/linux.mkscript -makefile $(ME)/Materials/platforms/linux.mk
|
||||||
|
$(INWEB) -platform linux -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-linux.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/unix.mkscript -makefile $(ME)/Materials/platforms/unix.mk
|
||||||
|
$(INWEB) -platform unix -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-unix.mk
|
||||||
|
|
||||||
|
.PHONY: initial
|
||||||
|
initial: $(ME)/platform-settings.mk
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: safe
|
||||||
|
safe:
|
||||||
|
$(call make-me-using-safety-copy)
|
||||||
|
|
||||||
|
define make-me-once-tangled
|
||||||
|
gcc -c -D_BSD_SOURCE -DPLATFORM_UNIX -fdiagnostics-color=auto $(GCCWARNINGS) -g -o $(ME)/Tangled/$(ME).o $(ME)/Tangled/$(ME).c
|
||||||
|
gcc -D_BSD_SOURCE -DPLATFORM_UNIX -fdiagnostics-color=auto -g -o $(ME)/Tangled/$(ME)$(EXEEXTENSION) $(ME)/Tangled/$(ME).o -lm
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-me
|
||||||
|
$(ME)/Tangled/$(ME) $(ME) -tangle
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-me-using-safety-copy
|
||||||
|
$(SAFETYCOPY) $(ME) -tangle
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-ftest
|
||||||
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
|
make -f $(FTEST)/foundation-test.mk force
|
||||||
|
endef
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test:
|
||||||
|
$(INTEST) -from $(ME) all
|
||||||
|
|
||||||
|
.PHONY: commit
|
||||||
|
commit:
|
||||||
|
$(INWEB) -advance-build-file $(ME)/build.txt
|
||||||
|
$(INWEB) -prototype inweb/scripts/inweb.rmscript -write-me inweb/README.md
|
||||||
|
cd $(ME); git commit -a
|
||||||
|
|
||||||
|
.PHONY: pages
|
||||||
|
pages:
|
||||||
|
$(INWEB) -help > $(ME)/Figures/help.txt
|
||||||
|
$(INWEB) -show-languages > $(ME)/Figures/languages.txt
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -scan > $(ME)/Figures/scan.txt
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -weave-as TestingInweb -weave-to $(ME)/Figures/tree.txt
|
||||||
|
cp -f $(COLONY) $(ME)/Figures/colony.txt
|
||||||
|
cp -f $(ME)/docs-src/nav.html $(ME)/Figures/nav.txt
|
||||||
|
$(INWEB) -advance-build-file $(ME)/build.txt
|
||||||
|
mkdir -p $(ME)/docs
|
||||||
|
rm -f $(ME)/docs/*.html
|
||||||
|
mkdir -p $(ME)/docs/docs-assets
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.css
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.png
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.gif
|
||||||
|
cp -f $(ME)/docs-src/Octagram.png $(ME)/docs/docs-assets/Octagram.png
|
||||||
|
$(INWEB) -prototype inweb/scripts/inweb.rmscript -write-me inweb/README.md
|
||||||
|
mkdir -p $(ME)/docs/inweb
|
||||||
|
rm -f $(ME)/docs/inweb/*.html
|
||||||
|
mkdir -p $(ME)/docs/goldbach
|
||||||
|
rm -f $(ME)/docs/goldbach/*.html
|
||||||
|
mkdir -p $(ME)/docs/twinprimes
|
||||||
|
rm -f $(ME)/docs/twinprimes/*.html
|
||||||
|
mkdir -p $(ME)/docs/eastertide
|
||||||
|
rm -f $(ME)/docs/eastertide/*.html
|
||||||
|
mkdir -p $(ME)/docs/foundation-module
|
||||||
|
rm -f $(ME)/docs/foundation-module/*.html
|
||||||
|
mkdir -p $(ME)/docs/foundation-test
|
||||||
|
rm -f $(ME)/docs/foundation-test/*.html
|
||||||
|
$(INWEB) -colony $(COLONY) -member overview -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member goldbach -weave
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as Plain -weave-to inweb/docs/goldbach/goldbach.txt
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as TestingInweb -weave-to inweb/docs/goldbach/goldbach-test.txt
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as PDFTeX -weave-to inweb/docs/goldbach/goldbach.pdf
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as TeX -weave-to inweb/docs/goldbach/goldbach.tex
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member eastertide -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member inweb -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member foundation -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member foundation-test -weave
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
$(call clean-up)
|
||||||
|
|
||||||
|
.PHONY: purge
|
||||||
|
purge:
|
||||||
|
$(call clean-up)
|
||||||
|
|
||||||
|
define clean-up
|
||||||
|
rm -f $(ME)/Tangled/*.o
|
||||||
|
rm -f $(ME)/Tangled/*.h
|
||||||
|
endef
|
||||||
|
|
|
@ -45,35 +45,15 @@ force: $(ME)/platform-settings.mk
|
||||||
makers:
|
makers:
|
||||||
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
$(INWEB) -prototype $(ME)/Materials/platforms/macos.mkscript -makefile $(ME)/Materials/platforms/macos.mk
|
$(INWEB) -prototype $(ME)/Materials/platforms/macos.mkscript -makefile $(ME)/Materials/platforms/macos.mk
|
||||||
|
$(INWEB) -platform macos -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-macos.mk
|
||||||
$(INWEB) -prototype $(ME)/Materials/platforms/macos32.mkscript -makefile $(ME)/Materials/platforms/macos32.mk
|
$(INWEB) -prototype $(ME)/Materials/platforms/macos32.mkscript -makefile $(ME)/Materials/platforms/macos32.mk
|
||||||
|
$(INWEB) -platform macos32 -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-macos32.mk
|
||||||
$(INWEB) -prototype $(ME)/Materials/platforms/windows.mkscript -makefile $(ME)/Materials/platforms/windows.mk
|
$(INWEB) -prototype $(ME)/Materials/platforms/windows.mkscript -makefile $(ME)/Materials/platforms/windows.mk
|
||||||
|
$(INWEB) -platform windows -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-windows.mk
|
||||||
$(INWEB) -prototype $(ME)/Materials/platforms/linux.mkscript -makefile $(ME)/Materials/platforms/linux.mk
|
$(INWEB) -prototype $(ME)/Materials/platforms/linux.mkscript -makefile $(ME)/Materials/platforms/linux.mk
|
||||||
|
$(INWEB) -platform linux -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-linux.mk
|
||||||
$(INWEB) -prototype $(ME)/Materials/platforms/unix.mkscript -makefile $(ME)/Materials/platforms/unix.mk
|
$(INWEB) -prototype $(ME)/Materials/platforms/unix.mkscript -makefile $(ME)/Materials/platforms/unix.mk
|
||||||
|
$(INWEB) -platform unix -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-unix.mk
|
||||||
.PHONY: macos
|
|
||||||
macos:
|
|
||||||
cp -f $(ME)/Materials/platforms/macos.mk $(ME)/platform-settings.mk
|
|
||||||
echo "=== Platform set to 'macos'. Now: make -f inweb/inweb.mk initial ==="
|
|
||||||
|
|
||||||
.PHONY: macos32
|
|
||||||
macos32:
|
|
||||||
cp -f $(ME)/Materials/platforms/macos32.mk $(ME)/platform-settings.mk
|
|
||||||
echo "=== Platform set to 'macos32'. Now: make -f inweb/inweb.mk initial ==="
|
|
||||||
|
|
||||||
.PHONY: windows
|
|
||||||
windows:
|
|
||||||
cp -f $(ME)/Materials/platforms/windows.mk $(ME)/platform-settings.mk
|
|
||||||
echo "=== Platform set to 'windows'. Now: make -f inweb/inweb.mk initial ==="
|
|
||||||
|
|
||||||
.PHONY: linux
|
|
||||||
linux:
|
|
||||||
cp -f $(ME)/Materials/platforms/linux.mk $(ME)/platform-settings.mk
|
|
||||||
echo "=== Platform set to 'linux'. Now: make -f inweb/inweb.mk initial ==="
|
|
||||||
|
|
||||||
.PHONY: unix
|
|
||||||
unix:
|
|
||||||
cp -f $(ME)/Materials/platforms/unix.mk $(ME)/platform-settings.mk
|
|
||||||
echo "=== Platform set to 'unix'. Now: make -f inweb/inweb.mk initial ==="
|
|
||||||
|
|
||||||
.PHONY: initial
|
.PHONY: initial
|
||||||
initial: $(ME)/platform-settings.mk
|
initial: $(ME)/platform-settings.mk
|
||||||
|
@ -101,7 +81,7 @@ endef
|
||||||
|
|
||||||
define make-ftest
|
define make-ftest
|
||||||
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
make -f $(FTEST)/foundation-test.mk
|
make -f $(FTEST)/foundation-test.mk force
|
||||||
endef
|
endef
|
||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
150
Materials/platforms/inweb-on-macos32.mk
Normal file
150
Materials/platforms/inweb-on-macos32.mk
Normal file
|
@ -0,0 +1,150 @@
|
||||||
|
# This makefile was automatically written by inweb -makefile
|
||||||
|
# and is not intended for human editing
|
||||||
|
|
||||||
|
INWEBPLATFORM = macos32
|
||||||
|
|
||||||
|
INFORM6OS = MACOS
|
||||||
|
|
||||||
|
GLULXEOS = OS_UNIX
|
||||||
|
|
||||||
|
EXEEXTENSION =
|
||||||
|
|
||||||
|
INTEST = intest/Tangled/intest
|
||||||
|
INWEB = inweb/Tangled/inweb
|
||||||
|
|
||||||
|
CCOPTS = -DPLATFORM_MACOS=1 -mmacosx-version-min=10.4 -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
|
||||||
|
|
||||||
|
MANYWARNINGS = -Weverything -Wno-pointer-arith -Wno-unused-macros -Wno-shadow -Wno-cast-align -Wno-variadic-macros -Wno-missing-noreturn -Wno-missing-prototypes -Wno-unused-parameter -Wno-padded -Wno-missing-variable-declarations -Wno-unreachable-code-break -Wno-class-varargs -Wno-format-nonliteral -Wno-cast-qual -Wno-double-promotion -Wno-comma -Wno-strict-prototypes -Wno-extra-semi-stmt -ferror-limit=1000
|
||||||
|
|
||||||
|
FEWERWARNINGS = -Wno-implicit-int -Wno-dangling-else -Wno-pointer-sign -Wno-format-extra-args -Wno-tautological-compare -Wno-deprecated-declarations -Wno-logical-op-parentheses -Wno-format -Wno-extra-semi-stmt
|
||||||
|
|
||||||
|
ME = inweb
|
||||||
|
FTEST = $(ME)/foundation-test
|
||||||
|
SAFETYCOPY = $(ME)/Tangled/inweb_dev
|
||||||
|
|
||||||
|
COLONY = $(ME)/colony.txt
|
||||||
|
|
||||||
|
-include $(ME)/platform-settings.mk
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
|
||||||
|
all: $(ME)/platform-settings.mk $(ME)/Tangled/$(ME) $(FTEST)/Tangled/foundation-test
|
||||||
|
|
||||||
|
$(ME)/Tangled/$(ME): $(ME)/Contents.w $(ME)/Chapter*/*.w $(ME)/foundation-module/Contents.w $(ME)/foundation-module/Chapter*/*.w
|
||||||
|
$(call make-me)
|
||||||
|
|
||||||
|
$(FTEST)/Tangled/foundation-test: $(FTEST)/Contents.w $(FTEST)/Sections/*.w $(ME)/foundation-module/Contents.w $(ME)/foundation-module/Chapter*/*.w
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: force
|
||||||
|
force: $(ME)/platform-settings.mk
|
||||||
|
$(call make-me)
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: makers
|
||||||
|
makers:
|
||||||
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/macos.mkscript -makefile $(ME)/Materials/platforms/macos.mk
|
||||||
|
$(INWEB) -platform macos -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-macos.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/macos32.mkscript -makefile $(ME)/Materials/platforms/macos32.mk
|
||||||
|
$(INWEB) -platform macos32 -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-macos32.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/windows.mkscript -makefile $(ME)/Materials/platforms/windows.mk
|
||||||
|
$(INWEB) -platform windows -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-windows.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/linux.mkscript -makefile $(ME)/Materials/platforms/linux.mk
|
||||||
|
$(INWEB) -platform linux -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-linux.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/unix.mkscript -makefile $(ME)/Materials/platforms/unix.mk
|
||||||
|
$(INWEB) -platform unix -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-unix.mk
|
||||||
|
|
||||||
|
.PHONY: initial
|
||||||
|
initial: $(ME)/platform-settings.mk
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: safe
|
||||||
|
safe:
|
||||||
|
$(call make-me-using-safety-copy)
|
||||||
|
|
||||||
|
define make-me-once-tangled
|
||||||
|
clang -std=c11 -c $(MANYWARNINGS) $(CCOPTS) -g -o $(ME)/Tangled/$(ME).o $(ME)/Tangled/$(ME).c
|
||||||
|
clang $(CCOPTS) -g -o $(ME)/Tangled/$(ME)$(EXEEXTENSION) $(ME)/Tangled/$(ME).o
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-me
|
||||||
|
$(ME)/Tangled/$(ME) $(ME) -tangle
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-me-using-safety-copy
|
||||||
|
$(SAFETYCOPY) $(ME) -tangle
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-ftest
|
||||||
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
|
make -f $(FTEST)/foundation-test.mk force
|
||||||
|
endef
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test:
|
||||||
|
$(INTEST) -from $(ME) all
|
||||||
|
|
||||||
|
.PHONY: commit
|
||||||
|
commit:
|
||||||
|
$(INWEB) -advance-build-file $(ME)/build.txt
|
||||||
|
$(INWEB) -prototype inweb/scripts/inweb.rmscript -write-me inweb/README.md
|
||||||
|
cd $(ME); git commit -a
|
||||||
|
|
||||||
|
.PHONY: pages
|
||||||
|
pages:
|
||||||
|
$(INWEB) -help > $(ME)/Figures/help.txt
|
||||||
|
$(INWEB) -show-languages > $(ME)/Figures/languages.txt
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -scan > $(ME)/Figures/scan.txt
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -weave-as TestingInweb -weave-to $(ME)/Figures/tree.txt
|
||||||
|
cp -f $(COLONY) $(ME)/Figures/colony.txt
|
||||||
|
cp -f $(ME)/docs-src/nav.html $(ME)/Figures/nav.txt
|
||||||
|
$(INWEB) -advance-build-file $(ME)/build.txt
|
||||||
|
mkdir -p $(ME)/docs
|
||||||
|
rm -f $(ME)/docs/*.html
|
||||||
|
mkdir -p $(ME)/docs/docs-assets
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.css
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.png
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.gif
|
||||||
|
cp -f $(ME)/docs-src/Octagram.png $(ME)/docs/docs-assets/Octagram.png
|
||||||
|
$(INWEB) -prototype inweb/scripts/inweb.rmscript -write-me inweb/README.md
|
||||||
|
mkdir -p $(ME)/docs/inweb
|
||||||
|
rm -f $(ME)/docs/inweb/*.html
|
||||||
|
mkdir -p $(ME)/docs/goldbach
|
||||||
|
rm -f $(ME)/docs/goldbach/*.html
|
||||||
|
mkdir -p $(ME)/docs/twinprimes
|
||||||
|
rm -f $(ME)/docs/twinprimes/*.html
|
||||||
|
mkdir -p $(ME)/docs/eastertide
|
||||||
|
rm -f $(ME)/docs/eastertide/*.html
|
||||||
|
mkdir -p $(ME)/docs/foundation-module
|
||||||
|
rm -f $(ME)/docs/foundation-module/*.html
|
||||||
|
mkdir -p $(ME)/docs/foundation-test
|
||||||
|
rm -f $(ME)/docs/foundation-test/*.html
|
||||||
|
$(INWEB) -colony $(COLONY) -member overview -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member goldbach -weave
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as Plain -weave-to inweb/docs/goldbach/goldbach.txt
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as TestingInweb -weave-to inweb/docs/goldbach/goldbach-test.txt
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as PDFTeX -weave-to inweb/docs/goldbach/goldbach.pdf
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as TeX -weave-to inweb/docs/goldbach/goldbach.tex
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member eastertide -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member inweb -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member foundation -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member foundation-test -weave
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
$(call clean-up)
|
||||||
|
|
||||||
|
.PHONY: purge
|
||||||
|
purge:
|
||||||
|
$(call clean-up)
|
||||||
|
|
||||||
|
define clean-up
|
||||||
|
rm -f $(ME)/Tangled/*.o
|
||||||
|
rm -f $(ME)/Tangled/*.h
|
||||||
|
endef
|
||||||
|
|
150
Materials/platforms/inweb-on-unix.mk
Normal file
150
Materials/platforms/inweb-on-unix.mk
Normal file
|
@ -0,0 +1,150 @@
|
||||||
|
# This makefile was automatically written by inweb -makefile
|
||||||
|
# and is not intended for human editing
|
||||||
|
|
||||||
|
INWEBPLATFORM = unix
|
||||||
|
|
||||||
|
INFORM6OS = LINUX
|
||||||
|
|
||||||
|
GLULXEOS = OS_UNIX
|
||||||
|
|
||||||
|
EXEEXTENSION =
|
||||||
|
|
||||||
|
INTEST = intest/Tangled/intest
|
||||||
|
INWEB = inweb/Tangled/inweb
|
||||||
|
|
||||||
|
CCOPTS = -Wno-unused -DPLATFORM_UNIX -DUNIX64 -DCPU_WORDSIZE_MULTIPLIER=2 -O2
|
||||||
|
|
||||||
|
MANYWARNINGS = -Weverything -Wno-pointer-arith -Wno-unused-macros -Wno-shadow -Wno-cast-align -Wno-variadic-macros -Wno-missing-noreturn -Wno-missing-prototypes -Wno-unused-parameter -Wno-padded -Wno-missing-variable-declarations -Wno-unreachable-code-break -Wno-class-varargs -Wno-format-nonliteral -Wno-cast-qual -Wno-double-promotion -Wno-comma -Wno-strict-prototypes -Wno-extra-semi-stmt -Wno-c11-extensions -Wno-unreachable-code-return -ferror-limit=1000
|
||||||
|
|
||||||
|
FEWERWARNINGS = -Wno-implicit-int -Wno-dangling-else -Wno-pointer-sign -Wno-format-extra-args -Wno-tautological-compare -Wno-deprecated-declarations -Wno-logical-op-parentheses -Wno-format -Wno-extra-semi-stmt -Wno-c11-extensions -Wno-unreachable-code-return
|
||||||
|
|
||||||
|
ME = inweb
|
||||||
|
FTEST = $(ME)/foundation-test
|
||||||
|
SAFETYCOPY = $(ME)/Tangled/inweb_dev
|
||||||
|
|
||||||
|
COLONY = $(ME)/colony.txt
|
||||||
|
|
||||||
|
-include $(ME)/platform-settings.mk
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
|
||||||
|
all: $(ME)/platform-settings.mk $(ME)/Tangled/$(ME) $(FTEST)/Tangled/foundation-test
|
||||||
|
|
||||||
|
$(ME)/Tangled/$(ME): $(ME)/Contents.w $(ME)/Chapter*/*.w $(ME)/foundation-module/Contents.w $(ME)/foundation-module/Chapter*/*.w
|
||||||
|
$(call make-me)
|
||||||
|
|
||||||
|
$(FTEST)/Tangled/foundation-test: $(FTEST)/Contents.w $(FTEST)/Sections/*.w $(ME)/foundation-module/Contents.w $(ME)/foundation-module/Chapter*/*.w
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: force
|
||||||
|
force: $(ME)/platform-settings.mk
|
||||||
|
$(call make-me)
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: makers
|
||||||
|
makers:
|
||||||
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/macos.mkscript -makefile $(ME)/Materials/platforms/macos.mk
|
||||||
|
$(INWEB) -platform macos -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-macos.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/macos32.mkscript -makefile $(ME)/Materials/platforms/macos32.mk
|
||||||
|
$(INWEB) -platform macos32 -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-macos32.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/windows.mkscript -makefile $(ME)/Materials/platforms/windows.mk
|
||||||
|
$(INWEB) -platform windows -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-windows.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/linux.mkscript -makefile $(ME)/Materials/platforms/linux.mk
|
||||||
|
$(INWEB) -platform linux -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-linux.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/unix.mkscript -makefile $(ME)/Materials/platforms/unix.mk
|
||||||
|
$(INWEB) -platform unix -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-unix.mk
|
||||||
|
|
||||||
|
.PHONY: initial
|
||||||
|
initial: $(ME)/platform-settings.mk
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: safe
|
||||||
|
safe:
|
||||||
|
$(call make-me-using-safety-copy)
|
||||||
|
|
||||||
|
define make-me-once-tangled
|
||||||
|
clang -std=c11 -c $(MANYWARNINGS) $(CCOPTS) -g -o $(ME)/Tangled/$(ME).o $(ME)/Tangled/$(ME).c
|
||||||
|
clang -lm -lpthread -static -g -o $(ME)/Tangled/$(ME)$(EXEEXTENSION) $(ME)/Tangled/$(ME).o
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-me
|
||||||
|
$(ME)/Tangled/$(ME) $(ME) -tangle
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-me-using-safety-copy
|
||||||
|
$(SAFETYCOPY) $(ME) -tangle
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-ftest
|
||||||
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
|
make -f $(FTEST)/foundation-test.mk force
|
||||||
|
endef
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test:
|
||||||
|
$(INTEST) -from $(ME) all
|
||||||
|
|
||||||
|
.PHONY: commit
|
||||||
|
commit:
|
||||||
|
$(INWEB) -advance-build-file $(ME)/build.txt
|
||||||
|
$(INWEB) -prototype inweb/scripts/inweb.rmscript -write-me inweb/README.md
|
||||||
|
cd $(ME); git commit -a
|
||||||
|
|
||||||
|
.PHONY: pages
|
||||||
|
pages:
|
||||||
|
$(INWEB) -help > $(ME)/Figures/help.txt
|
||||||
|
$(INWEB) -show-languages > $(ME)/Figures/languages.txt
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -scan > $(ME)/Figures/scan.txt
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -weave-as TestingInweb -weave-to $(ME)/Figures/tree.txt
|
||||||
|
cp -f $(COLONY) $(ME)/Figures/colony.txt
|
||||||
|
cp -f $(ME)/docs-src/nav.html $(ME)/Figures/nav.txt
|
||||||
|
$(INWEB) -advance-build-file $(ME)/build.txt
|
||||||
|
mkdir -p $(ME)/docs
|
||||||
|
rm -f $(ME)/docs/*.html
|
||||||
|
mkdir -p $(ME)/docs/docs-assets
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.css
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.png
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.gif
|
||||||
|
cp -f $(ME)/docs-src/Octagram.png $(ME)/docs/docs-assets/Octagram.png
|
||||||
|
$(INWEB) -prototype inweb/scripts/inweb.rmscript -write-me inweb/README.md
|
||||||
|
mkdir -p $(ME)/docs/inweb
|
||||||
|
rm -f $(ME)/docs/inweb/*.html
|
||||||
|
mkdir -p $(ME)/docs/goldbach
|
||||||
|
rm -f $(ME)/docs/goldbach/*.html
|
||||||
|
mkdir -p $(ME)/docs/twinprimes
|
||||||
|
rm -f $(ME)/docs/twinprimes/*.html
|
||||||
|
mkdir -p $(ME)/docs/eastertide
|
||||||
|
rm -f $(ME)/docs/eastertide/*.html
|
||||||
|
mkdir -p $(ME)/docs/foundation-module
|
||||||
|
rm -f $(ME)/docs/foundation-module/*.html
|
||||||
|
mkdir -p $(ME)/docs/foundation-test
|
||||||
|
rm -f $(ME)/docs/foundation-test/*.html
|
||||||
|
$(INWEB) -colony $(COLONY) -member overview -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member goldbach -weave
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as Plain -weave-to inweb/docs/goldbach/goldbach.txt
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as TestingInweb -weave-to inweb/docs/goldbach/goldbach-test.txt
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as PDFTeX -weave-to inweb/docs/goldbach/goldbach.pdf
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as TeX -weave-to inweb/docs/goldbach/goldbach.tex
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member eastertide -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member inweb -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member foundation -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member foundation-test -weave
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
$(call clean-up)
|
||||||
|
|
||||||
|
.PHONY: purge
|
||||||
|
purge:
|
||||||
|
$(call clean-up)
|
||||||
|
|
||||||
|
define clean-up
|
||||||
|
rm -f $(ME)/Tangled/*.o
|
||||||
|
rm -f $(ME)/Tangled/*.h
|
||||||
|
endef
|
||||||
|
|
150
Materials/platforms/inweb-on-windows.mk
Normal file
150
Materials/platforms/inweb-on-windows.mk
Normal file
|
@ -0,0 +1,150 @@
|
||||||
|
# This makefile was automatically written by inweb -makefile
|
||||||
|
# and is not intended for human editing
|
||||||
|
|
||||||
|
INWEBPLATFORM = windows
|
||||||
|
|
||||||
|
INFORM6OS = PC_WIN32
|
||||||
|
|
||||||
|
GLULXEOS = OS_WIN32
|
||||||
|
|
||||||
|
EXEEXTENSION = .exe
|
||||||
|
|
||||||
|
INTEST = intest/Tangled/intest
|
||||||
|
INWEB = inweb/Tangled/inweb
|
||||||
|
|
||||||
|
CCOPTS = -DPLATFORM_WINDOWS=1 -D_WIN32_WINNT=0x0600
|
||||||
|
|
||||||
|
MANYWARNINGS = -Weverything -Wno-pointer-arith -Wno-unused-macros -Wno-shadow -Wno-cast-align -Wno-variadic-macros -Wno-missing-noreturn -Wno-missing-prototypes -Wno-unused-parameter -Wno-padded -Wno-missing-variable-declarations -Wno-unreachable-code-break -Wno-class-varargs -Wno-format-nonliteral -Wno-cast-qual -Wno-double-promotion -Wno-comma -Wno-strict-prototypes -Wno-extra-semi-stmt -Wno-used-but-marked-unused -Wno-unreachable-code-return -ferror-limit=1000
|
||||||
|
|
||||||
|
FEWERWARNINGS = -Wno-implicit-int -Wno-dangling-else -Wno-pointer-sign -Wno-format-extra-args -Wno-tautological-compare -Wno-deprecated-declarations -Wno-logical-op-parentheses -Wno-format -Wno-extra-semi-stmt -Wno-unreachable-code-return
|
||||||
|
|
||||||
|
ME = inweb
|
||||||
|
FTEST = $(ME)/foundation-test
|
||||||
|
SAFETYCOPY = $(ME)/Tangled/inweb_dev
|
||||||
|
|
||||||
|
COLONY = $(ME)/colony.txt
|
||||||
|
|
||||||
|
-include $(ME)/platform-settings.mk
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
|
||||||
|
all: $(ME)/platform-settings.mk $(ME)/Tangled/$(ME) $(FTEST)/Tangled/foundation-test
|
||||||
|
|
||||||
|
$(ME)/Tangled/$(ME): $(ME)/Contents.w $(ME)/Chapter*/*.w $(ME)/foundation-module/Contents.w $(ME)/foundation-module/Chapter*/*.w
|
||||||
|
$(call make-me)
|
||||||
|
|
||||||
|
$(FTEST)/Tangled/foundation-test: $(FTEST)/Contents.w $(FTEST)/Sections/*.w $(ME)/foundation-module/Contents.w $(ME)/foundation-module/Chapter*/*.w
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: force
|
||||||
|
force: $(ME)/platform-settings.mk
|
||||||
|
$(call make-me)
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: makers
|
||||||
|
makers:
|
||||||
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/macos.mkscript -makefile $(ME)/Materials/platforms/macos.mk
|
||||||
|
$(INWEB) -platform macos -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-macos.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/macos32.mkscript -makefile $(ME)/Materials/platforms/macos32.mk
|
||||||
|
$(INWEB) -platform macos32 -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-macos32.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/windows.mkscript -makefile $(ME)/Materials/platforms/windows.mk
|
||||||
|
$(INWEB) -platform windows -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-windows.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/linux.mkscript -makefile $(ME)/Materials/platforms/linux.mk
|
||||||
|
$(INWEB) -platform linux -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-linux.mk
|
||||||
|
$(INWEB) -prototype $(ME)/Materials/platforms/unix.mkscript -makefile $(ME)/Materials/platforms/unix.mk
|
||||||
|
$(INWEB) -platform unix -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-unix.mk
|
||||||
|
|
||||||
|
.PHONY: initial
|
||||||
|
initial: $(ME)/platform-settings.mk
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
$(call make-ftest)
|
||||||
|
|
||||||
|
.PHONY: safe
|
||||||
|
safe:
|
||||||
|
$(call make-me-using-safety-copy)
|
||||||
|
|
||||||
|
define make-me-once-tangled
|
||||||
|
x86_64-w64-mingw32-clang -std=c11 -c $(MANYWARNINGS) $(CCOPTS) -g -o $(ME)/Tangled/$(ME).o $(ME)/Tangled/$(ME).c
|
||||||
|
x86_64-w64-mingw32-clang $(CCOPTS) -g -o $(ME)/Tangled/$(ME)$(EXEEXTENSION) $(ME)/Tangled/$(ME).o -lshlwapi
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-me
|
||||||
|
$(ME)/Tangled/$(ME) $(ME) -tangle
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-me-using-safety-copy
|
||||||
|
$(SAFETYCOPY) $(ME) -tangle
|
||||||
|
$(call make-me-once-tangled)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make-ftest
|
||||||
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
|
make -f $(FTEST)/foundation-test.mk force
|
||||||
|
endef
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test:
|
||||||
|
$(INTEST) -from $(ME) all
|
||||||
|
|
||||||
|
.PHONY: commit
|
||||||
|
commit:
|
||||||
|
$(INWEB) -advance-build-file $(ME)/build.txt
|
||||||
|
$(INWEB) -prototype inweb/scripts/inweb.rmscript -write-me inweb/README.md
|
||||||
|
cd $(ME); git commit -a
|
||||||
|
|
||||||
|
.PHONY: pages
|
||||||
|
pages:
|
||||||
|
$(INWEB) -help > $(ME)/Figures/help.txt
|
||||||
|
$(INWEB) -show-languages > $(ME)/Figures/languages.txt
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -scan > $(ME)/Figures/scan.txt
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -weave-as TestingInweb -weave-to $(ME)/Figures/tree.txt
|
||||||
|
cp -f $(COLONY) $(ME)/Figures/colony.txt
|
||||||
|
cp -f $(ME)/docs-src/nav.html $(ME)/Figures/nav.txt
|
||||||
|
$(INWEB) -advance-build-file $(ME)/build.txt
|
||||||
|
mkdir -p $(ME)/docs
|
||||||
|
rm -f $(ME)/docs/*.html
|
||||||
|
mkdir -p $(ME)/docs/docs-assets
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.css
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.png
|
||||||
|
rm -f $(ME)/docs/docs-assets/*.gif
|
||||||
|
cp -f $(ME)/docs-src/Octagram.png $(ME)/docs/docs-assets/Octagram.png
|
||||||
|
$(INWEB) -prototype inweb/scripts/inweb.rmscript -write-me inweb/README.md
|
||||||
|
mkdir -p $(ME)/docs/inweb
|
||||||
|
rm -f $(ME)/docs/inweb/*.html
|
||||||
|
mkdir -p $(ME)/docs/goldbach
|
||||||
|
rm -f $(ME)/docs/goldbach/*.html
|
||||||
|
mkdir -p $(ME)/docs/twinprimes
|
||||||
|
rm -f $(ME)/docs/twinprimes/*.html
|
||||||
|
mkdir -p $(ME)/docs/eastertide
|
||||||
|
rm -f $(ME)/docs/eastertide/*.html
|
||||||
|
mkdir -p $(ME)/docs/foundation-module
|
||||||
|
rm -f $(ME)/docs/foundation-module/*.html
|
||||||
|
mkdir -p $(ME)/docs/foundation-test
|
||||||
|
rm -f $(ME)/docs/foundation-test/*.html
|
||||||
|
$(INWEB) -colony $(COLONY) -member overview -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member goldbach -weave
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as Plain -weave-to inweb/docs/goldbach/goldbach.txt
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as TestingInweb -weave-to inweb/docs/goldbach/goldbach-test.txt
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as PDFTeX -weave-to inweb/docs/goldbach/goldbach.pdf
|
||||||
|
$(INWEB) -colony $(COLONY) inweb/Examples/goldbach all -weave-as TeX -weave-to inweb/docs/goldbach/goldbach.tex
|
||||||
|
$(INWEB) -colony $(COLONY) -member twinprimes -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member eastertide -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member inweb -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member foundation -weave
|
||||||
|
$(INWEB) -colony $(COLONY) -member foundation-test -weave
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
$(call clean-up)
|
||||||
|
|
||||||
|
.PHONY: purge
|
||||||
|
purge:
|
||||||
|
$(call clean-up)
|
||||||
|
|
||||||
|
define clean-up
|
||||||
|
rm -f $(ME)/Tangled/*.o
|
||||||
|
rm -f $(ME)/Tangled/*.h
|
||||||
|
endef
|
||||||
|
|
28
README.md
28
README.md
|
@ -1,6 +1,6 @@
|
||||||
# Inweb 7
|
# Inweb 7
|
||||||
|
|
||||||
v7-alpha.1+1A92 'Escape to Danger' (23 April 2022)
|
v7-alpha.1+1A93 'Escape to Danger' (24 April 2022)
|
||||||
|
|
||||||
## About Inweb
|
## About Inweb
|
||||||
|
|
||||||
|
@ -51,17 +51,25 @@ though only because its build settings are currently missing from the inweb
|
||||||
distribution. The older macos32 platform won't build with the MacOS SDK from
|
distribution. The older macos32 platform won't build with the MacOS SDK from
|
||||||
10.14 onwards, and in any case 32-bit executables won't run from 10.15 onwards:
|
10.14 onwards, and in any case 32-bit executables won't run from 10.15 onwards:
|
||||||
so use the default macos unless you need to build for an old version of MacOS.
|
so use the default macos unless you need to build for an old version of MacOS.
|
||||||
* "make -f inweb/inweb.mk macos"
|
* "bash inweb/scripts/first.sh linux"
|
||||||
* "make -f inweb/inweb.mk macos32"
|
* "bash inweb/scripts/first.sh macos"
|
||||||
* "make -f inweb/inweb.mk linux"
|
* "bash inweb/scripts/first.sh macos32"
|
||||||
* "make -f inweb/inweb.mk windows"
|
* "bash inweb/scripts/first.sh unix"
|
||||||
* "make -f inweb/inweb.mk unix"
|
* "bash inweb/scripts/first.sh windows"
|
||||||
* "make -f inweb/inweb.mk android"
|
|
||||||
* Perform the initial compilation: "make -f inweb/inweb.mk initial"
|
|
||||||
* Test that all is well: "inweb/Tangled/inweb -help"
|
* Test that all is well: "inweb/Tangled/inweb -help"
|
||||||
|
|
||||||
You should now have a working copy of Inweb. To build it again, no need to
|
You should now have a working copy of Inweb, with its own makefile tailored
|
||||||
use "initial", and you should just: "make -f inweb/inweb.mk"
|
to your platform now in place (at inweb/inweb.mk). To build inweb again, e.g.
|
||||||
|
after editing inweb's source code, do not run the shell script first.sh again.
|
||||||
|
Instead, you must use the makefile:
|
||||||
|
|
||||||
|
* make -f inweb/inweb.mk
|
||||||
|
|
||||||
|
If you wish to tweak the makefile, do not edit it directly. Instead,
|
||||||
|
edit inweb/scripts/inweb.mkscript and inweb/Materials/platforms/PLATFORM.mkscript,
|
||||||
|
where PLATFORM is your choice as above (e.g., 'macos'). Then run "make -f inweb/inweb.mk makers"
|
||||||
|
to rebuild all these makefiles with your changes incorporated; and try running
|
||||||
|
the shell script "inweb/scripts/first.sh" again.
|
||||||
|
|
||||||
## Also Included
|
## Also Included
|
||||||
|
|
||||||
|
|
264
Tangled/inweb.c
264
Tangled/inweb.c
|
@ -902,26 +902,27 @@ struct Win32_Mutex { INIT_ONCE init; CRITICAL_SECTION crit; };
|
||||||
#define GITIGNORE_CLSW 18
|
#define GITIGNORE_CLSW 18
|
||||||
#define MAKEFILE_CLSW 19
|
#define MAKEFILE_CLSW 19
|
||||||
#define WRITEME_CLSW 20
|
#define WRITEME_CLSW 20
|
||||||
#define ADVANCE_FILE_CLSW 21
|
#define PLATFORM_CLSW 21
|
||||||
#define PROTOTYPE_CLSW 22
|
#define ADVANCE_FILE_CLSW 22
|
||||||
#define SCAN_CLSW 23
|
#define PROTOTYPE_CLSW 23
|
||||||
|
#define SCAN_CLSW 24
|
||||||
#define WEAVING_CLSG 4
|
#define WEAVING_CLSG 4
|
||||||
#define WEAVE_CLSW 24
|
#define WEAVE_CLSW 25
|
||||||
#define WEAVE_INTO_CLSW 25
|
#define WEAVE_INTO_CLSW 26
|
||||||
#define WEAVE_TO_CLSW 26
|
#define WEAVE_TO_CLSW 27
|
||||||
#define OPEN_CLSW 27
|
#define OPEN_CLSW 28
|
||||||
#define WEAVE_AS_CLSW 28
|
#define WEAVE_AS_CLSW 29
|
||||||
#define WEAVE_TAG_CLSW 29
|
#define WEAVE_TAG_CLSW 30
|
||||||
#define BREADCRUMB_CLSW 30
|
#define BREADCRUMB_CLSW 31
|
||||||
#define NAVIGATION_CLSW 31
|
#define NAVIGATION_CLSW 32
|
||||||
#define TANGLING_CLSG 5
|
#define TANGLING_CLSG 5
|
||||||
#define TANGLE_CLSW 32
|
#define TANGLE_CLSW 33
|
||||||
#define TANGLE_TO_CLSW 33
|
#define TANGLE_TO_CLSW 34
|
||||||
#define CTAGS_TO_CLSW 34
|
#define CTAGS_TO_CLSW 35
|
||||||
#define CTAGS_CLSW 35
|
#define CTAGS_CLSW 36
|
||||||
#define COLONIAL_CLSG 6
|
#define COLONIAL_CLSG 6
|
||||||
#define COLONY_CLSW 36
|
#define COLONY_CLSW 37
|
||||||
#define MEMBER_CLSW 37
|
#define MEMBER_CLSW 38
|
||||||
#define EMBED_ASSET_METHOD 1
|
#define EMBED_ASSET_METHOD 1
|
||||||
#define COPY_ASSET_METHOD 2
|
#define COPY_ASSET_METHOD 2
|
||||||
#define PRIVATE_COPY_ASSET_METHOD 3
|
#define PRIVATE_COPY_ASSET_METHOD 3
|
||||||
|
@ -1091,7 +1092,7 @@ struct Win32_Mutex { INIT_ONCE init; CRITICAL_SECTION crit; };
|
||||||
#define POST_PROCESS_REPORT_POS_MTID 41
|
#define POST_PROCESS_REPORT_POS_MTID 41
|
||||||
#define POST_PROCESS_SUBSTITUTE_POS_MTID 42
|
#define POST_PROCESS_SUBSTITUTE_POS_MTID 42
|
||||||
#define PDFTEX_TEX_FORM 1
|
#define PDFTEX_TEX_FORM 1
|
||||||
#define NO_DEFINED_CLSW_VALUES 38
|
#define NO_DEFINED_CLSW_VALUES 39
|
||||||
#define NO_DEFINED_DA_VALUES 4
|
#define NO_DEFINED_DA_VALUES 4
|
||||||
#define NO_DEFINED_CLASS_VALUES 125
|
#define NO_DEFINED_CLASS_VALUES 125
|
||||||
#define NO_DEFINED_MREASON_VALUES 5
|
#define NO_DEFINED_MREASON_VALUES 5
|
||||||
|
@ -1667,6 +1668,7 @@ typedef struct inweb_instructions {
|
||||||
struct filename *colony_setting; /* |-colony X|: the filename X, if supplied */
|
struct filename *colony_setting; /* |-colony X|: the filename X, if supplied */
|
||||||
struct text_stream *member_setting; /* |-member X|: sets web to member X of colony */
|
struct text_stream *member_setting; /* |-member X|: sets web to member X of colony */
|
||||||
struct linked_list *breadcrumb_setting; /* of |breadcrumb_request| */
|
struct linked_list *breadcrumb_setting; /* of |breadcrumb_request| */
|
||||||
|
struct text_stream *platform_setting; /* |-platform X|: sets prevailing platform to X */
|
||||||
int verbose_switch; /* |-verbose|: print names of files read to stdout */
|
int verbose_switch; /* |-verbose|: print names of files read to stdout */
|
||||||
int targets; /* used only for parsing */
|
int targets; /* used only for parsing */
|
||||||
|
|
||||||
|
@ -2406,13 +2408,14 @@ typedef struct tex_results {
|
||||||
struct filename *PDF_filename;
|
struct filename *PDF_filename;
|
||||||
CLASS_DEFINITION
|
CLASS_DEFINITION
|
||||||
} tex_results;
|
} tex_results;
|
||||||
#line 46 "inweb/Chapter 6/Makefiles.w"
|
#line 47 "inweb/Chapter 6/Makefiles.w"
|
||||||
typedef struct makefile_specifics {
|
typedef struct makefile_specifics {
|
||||||
struct web *for_web; /* if one has been set at the command line */
|
struct web *for_web; /* if one has been set at the command line */
|
||||||
struct dictionary *tools_dictionary; /* components with |type: tool| */
|
struct dictionary *tools_dictionary; /* components with |type: tool| */
|
||||||
struct dictionary *webs_dictionary; /* components with |type: web| */
|
struct dictionary *webs_dictionary; /* components with |type: web| */
|
||||||
struct dictionary *modules_dictionary; /* components with |type: module| */
|
struct dictionary *modules_dictionary; /* components with |type: module| */
|
||||||
struct module_search *search_path;
|
struct module_search *search_path;
|
||||||
|
struct text_stream *which_platform;
|
||||||
CLASS_DEFINITION
|
CLASS_DEFINITION
|
||||||
} makefile_specifics;
|
} makefile_specifics;
|
||||||
#line 173 "inweb/Chapter 6/Ctags Support.w"
|
#line 173 "inweb/Chapter 6/Ctags Support.w"
|
||||||
|
@ -3877,17 +3880,17 @@ int main(int argc, char **argv) ;
|
||||||
void Main__follow_instructions(inweb_instructions *ins) ;
|
void Main__follow_instructions(inweb_instructions *ins) ;
|
||||||
#line 275 "inweb/Chapter 1/Program Control.w"
|
#line 275 "inweb/Chapter 1/Program Control.w"
|
||||||
void Main__error_in_web(text_stream *message, source_line *sl) ;
|
void Main__error_in_web(text_stream *message, source_line *sl) ;
|
||||||
#line 58 "inweb/Chapter 1/Configuration.w"
|
#line 59 "inweb/Chapter 1/Configuration.w"
|
||||||
inweb_instructions Configuration__read(int argc, char **argv) ;
|
inweb_instructions Configuration__read(int argc, char **argv) ;
|
||||||
#line 266 "inweb/Chapter 1/Configuration.w"
|
#line 271 "inweb/Chapter 1/Configuration.w"
|
||||||
void Configuration__switch(int id, int val, text_stream *arg, void *state) ;
|
void Configuration__switch(int id, int val, text_stream *arg, void *state) ;
|
||||||
#line 375 "inweb/Chapter 1/Configuration.w"
|
#line 383 "inweb/Chapter 1/Configuration.w"
|
||||||
void Configuration__member_and_colony(inweb_instructions *args) ;
|
void Configuration__member_and_colony(inweb_instructions *args) ;
|
||||||
#line 401 "inweb/Chapter 1/Configuration.w"
|
#line 409 "inweb/Chapter 1/Configuration.w"
|
||||||
void Configuration__bareword(int id, text_stream *opt, void *state) ;
|
void Configuration__bareword(int id, text_stream *opt, void *state) ;
|
||||||
#line 416 "inweb/Chapter 1/Configuration.w"
|
#line 424 "inweb/Chapter 1/Configuration.w"
|
||||||
void Configuration__set_range(inweb_instructions *args, text_stream *opt) ;
|
void Configuration__set_range(inweb_instructions *args, text_stream *opt) ;
|
||||||
#line 448 "inweb/Chapter 1/Configuration.w"
|
#line 456 "inweb/Chapter 1/Configuration.w"
|
||||||
void Configuration__set_fundamental_mode(inweb_instructions *args, int new_material) ;
|
void Configuration__set_fundamental_mode(inweb_instructions *args, int new_material) ;
|
||||||
#line 20 "inweb/Chapter 1/The Swarm.w"
|
#line 20 "inweb/Chapter 1/The Swarm.w"
|
||||||
void Swarm__weave(web *W, text_stream *range, int swarm_mode, theme_tag *tag, weave_pattern *pattern, filename *to, pathname *into, linked_list *breadcrumbs, filename *navigation) ;
|
void Swarm__weave(web *W, text_stream *range, int swarm_mode, theme_tag *tag, weave_pattern *pattern, filename *to, pathname *into, linked_list *breadcrumbs, filename *navigation) ;
|
||||||
|
@ -4048,7 +4051,7 @@ language_function * Analyser__get_function(section *S, text_stream *p, int e) ;
|
||||||
#line 370 "inweb/Chapter 3/The Analyser.w"
|
#line 370 "inweb/Chapter 3/The Analyser.w"
|
||||||
void Analyser__analyse_find(web *W, source_line *L, text_stream *identifier, int u) ;
|
void Analyser__analyse_find(web *W, source_line *L, text_stream *identifier, int u) ;
|
||||||
#line 392 "inweb/Chapter 3/The Analyser.w"
|
#line 392 "inweb/Chapter 3/The Analyser.w"
|
||||||
void Analyser__write_makefile(web *W, filename *F, module_search *I) ;
|
void Analyser__write_makefile(web *W, filename *F, module_search *I, text_stream *platform) ;
|
||||||
#line 407 "inweb/Chapter 3/The Analyser.w"
|
#line 407 "inweb/Chapter 3/The Analyser.w"
|
||||||
void Analyser__write_gitignore(web *W, filename *F) ;
|
void Analyser__write_gitignore(web *W, filename *F) ;
|
||||||
#line 19 "inweb/Chapter 3/The Collater.w"
|
#line 19 "inweb/Chapter 3/The Collater.w"
|
||||||
|
@ -4556,22 +4559,22 @@ void TeXUtilities__remove_math_mode(OUTPUT_STREAM, text_stream *text) ;
|
||||||
#line 133 "inweb/Chapter 5/TeX Utilities.w"
|
#line 133 "inweb/Chapter 5/TeX Utilities.w"
|
||||||
void TeXUtilities__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int to) ;
|
void TeXUtilities__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int to) ;
|
||||||
#line 12 "inweb/Chapter 6/Makefiles.w"
|
#line 12 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__write(web *W, filename *prototype, filename *F, module_search *I) ;
|
void Makefiles__write(web *W, filename *prototype, filename *F, module_search *I, text_stream *platform) ;
|
||||||
#line 65 "inweb/Chapter 6/Makefiles.w"
|
#line 68 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__identity_settings_expander(preprocessor_macro *mm, preprocessor_state *PPS, text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) ;
|
void Makefiles__identity_settings_expander(preprocessor_macro *mm, preprocessor_state *PPS, text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) ;
|
||||||
#line 87 "inweb/Chapter 6/Makefiles.w"
|
#line 90 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__platform_settings_expander(preprocessor_macro *mm, preprocessor_state *PPS, text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) ;
|
void Makefiles__platform_settings_expander(preprocessor_macro *mm, preprocessor_state *PPS, text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) ;
|
||||||
#line 109 "inweb/Chapter 6/Makefiles.w"
|
#line 115 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__seek_INWEBPLATFORM(text_stream *line, text_file_position *tfp, void *X) ;
|
void Makefiles__seek_INWEBPLATFORM(text_stream *line, text_file_position *tfp, void *X) ;
|
||||||
#line 119 "inweb/Chapter 6/Makefiles.w"
|
#line 125 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__component_expander(preprocessor_macro *mm, preprocessor_state *PPS, text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) ;
|
void Makefiles__component_expander(preprocessor_macro *mm, preprocessor_state *PPS, text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) ;
|
||||||
#line 169 "inweb/Chapter 6/Makefiles.w"
|
#line 175 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__components_expander(preprocessor_macro *mm, preprocessor_state *PPS, text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) ;
|
void Makefiles__components_expander(preprocessor_macro *mm, preprocessor_state *PPS, text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) ;
|
||||||
#line 202 "inweb/Chapter 6/Makefiles.w"
|
#line 208 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__dependent_files_expander(preprocessor_macro *mm, preprocessor_state *PPS, text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) ;
|
void Makefiles__dependent_files_expander(preprocessor_macro *mm, preprocessor_state *PPS, text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) ;
|
||||||
#line 258 "inweb/Chapter 6/Makefiles.w"
|
#line 264 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__pattern(OUTPUT_STREAM, linked_list *L, filename *F) ;
|
void Makefiles__pattern(OUTPUT_STREAM, linked_list *L, filename *F) ;
|
||||||
#line 299 "inweb/Chapter 6/Makefiles.w"
|
#line 305 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__pathname_slashed(OUTPUT_STREAM, pathname *P) ;
|
void Makefiles__pathname_slashed(OUTPUT_STREAM, pathname *P) ;
|
||||||
#line 8 "inweb/Chapter 6/Git Support.w"
|
#line 8 "inweb/Chapter 6/Git Support.w"
|
||||||
void Git__write_gitignore(web *W, filename *prototype, filename *F) ;
|
void Git__write_gitignore(web *W, filename *prototype, filename *F) ;
|
||||||
|
@ -17367,7 +17370,7 @@ void Main__follow_instructions(inweb_instructions *ins) {
|
||||||
ins->prototype_setting = Filenames__from_text(TL_IS_99);
|
ins->prototype_setting = Filenames__from_text(TL_IS_99);
|
||||||
if (ins->makefile_setting)
|
if (ins->makefile_setting)
|
||||||
Makefiles__write(W, ins->prototype_setting, ins->makefile_setting,
|
Makefiles__write(W, ins->prototype_setting, ins->makefile_setting,
|
||||||
WebModules__make_search_path(ins->import_setting));
|
WebModules__make_search_path(ins->import_setting), ins->platform_setting);
|
||||||
else if (ins->gitignore_setting)
|
else if (ins->gitignore_setting)
|
||||||
Git__write_gitignore(W, ins->prototype_setting, ins->gitignore_setting);
|
Git__write_gitignore(W, ins->prototype_setting, ins->gitignore_setting);
|
||||||
else if (ins->advance_setting)
|
else if (ins->advance_setting)
|
||||||
|
@ -17423,7 +17426,7 @@ void Main__follow_instructions(inweb_instructions *ins) {
|
||||||
Analyser__catalogue_the_sections(W, ins->chosen_range, STRUCTURES_SECTIONCAT);
|
Analyser__catalogue_the_sections(W, ins->chosen_range, STRUCTURES_SECTIONCAT);
|
||||||
if (ins->makefile_setting)
|
if (ins->makefile_setting)
|
||||||
Analyser__write_makefile(W, ins->makefile_setting,
|
Analyser__write_makefile(W, ins->makefile_setting,
|
||||||
WebModules__make_search_path(ins->import_setting));
|
WebModules__make_search_path(ins->import_setting), ins->platform_setting);
|
||||||
if (ins->gitignore_setting)
|
if (ins->gitignore_setting)
|
||||||
Analyser__write_gitignore(W, ins->gitignore_setting);
|
Analyser__write_gitignore(W, ins->gitignore_setting);
|
||||||
if (ins->advance_switch)
|
if (ins->advance_switch)
|
||||||
|
@ -17540,14 +17543,14 @@ void Main__error_in_web(text_stream *message, source_line *sl) {
|
||||||
no_inweb_errors++;
|
no_inweb_errors++;
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 51 "inweb/Chapter 1/Configuration.w"
|
#line 52 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
#line 58 "inweb/Chapter 1/Configuration.w"
|
#line 59 "inweb/Chapter 1/Configuration.w"
|
||||||
inweb_instructions Configuration__read(int argc, char **argv) {
|
inweb_instructions Configuration__read(int argc, char **argv) {
|
||||||
inweb_instructions args;
|
inweb_instructions args;
|
||||||
|
|
||||||
{
|
{
|
||||||
#line 78 "inweb/Chapter 1/Configuration.w"
|
#line 79 "inweb/Chapter 1/Configuration.w"
|
||||||
args.inweb_mode = NO_MODE;
|
args.inweb_mode = NO_MODE;
|
||||||
args.swarm_mode = SWARM_OFF_SWM;
|
args.swarm_mode = SWARM_OFF_SWM;
|
||||||
args.show_languages_switch = FALSE;
|
args.show_languages_switch = FALSE;
|
||||||
|
@ -17575,6 +17578,7 @@ inweb_instructions Configuration__read(int argc, char **argv) {
|
||||||
args.colony_setting = NULL;
|
args.colony_setting = NULL;
|
||||||
args.member_setting = NULL;
|
args.member_setting = NULL;
|
||||||
args.breadcrumb_setting = NEW_LINKED_LIST(breadcrumb_request);
|
args.breadcrumb_setting = NEW_LINKED_LIST(breadcrumb_request);
|
||||||
|
args.platform_setting = NULL;
|
||||||
args.tag_setting = Str__new();
|
args.tag_setting = Str__new();
|
||||||
args.weave_pattern = Str__new();
|
args.weave_pattern = Str__new();
|
||||||
args.import_setting = NULL;
|
args.import_setting = NULL;
|
||||||
|
@ -17583,11 +17587,11 @@ inweb_instructions Configuration__read(int argc, char **argv) {
|
||||||
args.test_language_on_setting = NULL;
|
args.test_language_on_setting = NULL;
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 60 "inweb/Chapter 1/Configuration.w"
|
#line 61 "inweb/Chapter 1/Configuration.w"
|
||||||
;
|
;
|
||||||
|
|
||||||
{
|
{
|
||||||
#line 164 "inweb/Chapter 1/Configuration.w"
|
#line 167 "inweb/Chapter 1/Configuration.w"
|
||||||
CommandLine__declare_heading(L"inweb: a tool for literate programming\n\n"
|
CommandLine__declare_heading(L"inweb: a tool for literate programming\n\n"
|
||||||
L"Usage: inweb WEB OPTIONS RANGE\n\n"
|
L"Usage: inweb WEB OPTIONS RANGE\n\n"
|
||||||
L"WEB must be a directory holding a literate program (a 'web')\n\n"
|
L"WEB must be a directory holding a literate program (a 'web')\n\n"
|
||||||
|
@ -17630,6 +17634,8 @@ inweb_instructions Configuration__read(int argc, char **argv) {
|
||||||
L"increment daily build code in file X");
|
L"increment daily build code in file X");
|
||||||
CommandLine__declare_switch(WRITEME_CLSW, L"write-me", 2,
|
CommandLine__declare_switch(WRITEME_CLSW, L"write-me", 2,
|
||||||
L"write a read-me file following instructions in file X");
|
L"write a read-me file following instructions in file X");
|
||||||
|
CommandLine__declare_switch(PLATFORM_CLSW, L"platform", 2,
|
||||||
|
L"use platform X (e.g. 'windows') when making e.g. makefiles");
|
||||||
CommandLine__declare_switch(PROTOTYPE_CLSW, L"prototype", 2,
|
CommandLine__declare_switch(PROTOTYPE_CLSW, L"prototype", 2,
|
||||||
L"translate makefile from prototype X");
|
L"translate makefile from prototype X");
|
||||||
CommandLine__declare_switch(FUNCTIONS_CLSW, L"functions", 1,
|
CommandLine__declare_switch(FUNCTIONS_CLSW, L"functions", 1,
|
||||||
|
@ -17688,7 +17694,7 @@ inweb_instructions Configuration__read(int argc, char **argv) {
|
||||||
L"specify that imported modules are at pathname X");
|
L"specify that imported modules are at pathname X");
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 61 "inweb/Chapter 1/Configuration.w"
|
#line 62 "inweb/Chapter 1/Configuration.w"
|
||||||
;
|
;
|
||||||
CommandLine__read(argc, argv, &args, &Configuration__switch, &Configuration__bareword);
|
CommandLine__read(argc, argv, &args, &Configuration__switch, &Configuration__bareword);
|
||||||
Configuration__member_and_colony(&args);
|
Configuration__member_and_colony(&args);
|
||||||
|
@ -17705,29 +17711,29 @@ inweb_instructions Configuration__read(int argc, char **argv) {
|
||||||
return args;
|
return args;
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 118 "inweb/Chapter 1/Configuration.w"
|
|
||||||
|
|
||||||
#line 120 "inweb/Chapter 1/Configuration.w"
|
#line 120 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
#line 126 "inweb/Chapter 1/Configuration.w"
|
#line 122 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
#line 128 "inweb/Chapter 1/Configuration.w"
|
#line 128 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
#line 139 "inweb/Chapter 1/Configuration.w"
|
#line 130 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
#line 141 "inweb/Chapter 1/Configuration.w"
|
#line 142 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
#line 150 "inweb/Chapter 1/Configuration.w"
|
#line 144 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
#line 152 "inweb/Chapter 1/Configuration.w"
|
#line 153 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
#line 157 "inweb/Chapter 1/Configuration.w"
|
#line 155 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
#line 159 "inweb/Chapter 1/Configuration.w"
|
#line 160 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
#line 162 "inweb/Chapter 1/Configuration.w"
|
#line 162 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
#line 266 "inweb/Chapter 1/Configuration.w"
|
#line 165 "inweb/Chapter 1/Configuration.w"
|
||||||
|
|
||||||
|
#line 271 "inweb/Chapter 1/Configuration.w"
|
||||||
void Configuration__switch(int id, int val, text_stream *arg, void *state) {
|
void Configuration__switch(int id, int val, text_stream *arg, void *state) {
|
||||||
inweb_instructions *args = (inweb_instructions *) state;
|
inweb_instructions *args = (inweb_instructions *) state;
|
||||||
switch (id) {
|
switch (id) {
|
||||||
|
@ -17772,6 +17778,9 @@ void Configuration__switch(int id, int val, text_stream *arg, void *state) {
|
||||||
if (args->inweb_mode != TRANSLATE_MODE)
|
if (args->inweb_mode != TRANSLATE_MODE)
|
||||||
Configuration__set_fundamental_mode(args, ANALYSE_MODE);
|
Configuration__set_fundamental_mode(args, ANALYSE_MODE);
|
||||||
break;
|
break;
|
||||||
|
case PLATFORM_CLSW:
|
||||||
|
args->platform_setting = Str__duplicate(arg);
|
||||||
|
break;
|
||||||
case ADVANCE_FILE_CLSW:
|
case ADVANCE_FILE_CLSW:
|
||||||
args->advance_setting = Filenames__from_text(arg);
|
args->advance_setting = Filenames__from_text(arg);
|
||||||
Configuration__set_fundamental_mode(args, TRANSLATE_MODE);
|
Configuration__set_fundamental_mode(args, TRANSLATE_MODE);
|
||||||
|
@ -17833,7 +17842,7 @@ void Configuration__switch(int id, int val, text_stream *arg, void *state) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 375 "inweb/Chapter 1/Configuration.w"
|
#line 383 "inweb/Chapter 1/Configuration.w"
|
||||||
void Configuration__member_and_colony(inweb_instructions *args) {
|
void Configuration__member_and_colony(inweb_instructions *args) {
|
||||||
if (args->colony_setting) Colonies__load(args->colony_setting);
|
if (args->colony_setting) Colonies__load(args->colony_setting);
|
||||||
if (Str__len(args->member_setting) > 0) {
|
if (Str__len(args->member_setting) > 0) {
|
||||||
|
@ -17855,7 +17864,7 @@ void Configuration__member_and_colony(inweb_instructions *args) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 401 "inweb/Chapter 1/Configuration.w"
|
#line 409 "inweb/Chapter 1/Configuration.w"
|
||||||
void Configuration__bareword(int id, text_stream *opt, void *state) {
|
void Configuration__bareword(int id, text_stream *opt, void *state) {
|
||||||
inweb_instructions *args = (inweb_instructions *) state;
|
inweb_instructions *args = (inweb_instructions *) state;
|
||||||
if ((args->chosen_web == NULL) && (args->chosen_file == NULL)) {
|
if ((args->chosen_web == NULL) && (args->chosen_file == NULL)) {
|
||||||
|
@ -17866,7 +17875,7 @@ void Configuration__bareword(int id, text_stream *opt, void *state) {
|
||||||
} else Configuration__set_range(args, opt);
|
} else Configuration__set_range(args, opt);
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 416 "inweb/Chapter 1/Configuration.w"
|
#line 424 "inweb/Chapter 1/Configuration.w"
|
||||||
void Configuration__set_range(inweb_instructions *args, text_stream *opt) {
|
void Configuration__set_range(inweb_instructions *args, text_stream *opt) {
|
||||||
match_results mr = Regexp__create_mr();
|
match_results mr = Regexp__create_mr();
|
||||||
if (Str__eq_wide_string(opt, L"index")) {
|
if (Str__eq_wide_string(opt, L"index")) {
|
||||||
|
@ -17896,7 +17905,7 @@ void Configuration__set_range(inweb_instructions *args, text_stream *opt) {
|
||||||
Regexp__dispose_of(&mr);
|
Regexp__dispose_of(&mr);
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 448 "inweb/Chapter 1/Configuration.w"
|
#line 456 "inweb/Chapter 1/Configuration.w"
|
||||||
void Configuration__set_fundamental_mode(inweb_instructions *args, int new_material) {
|
void Configuration__set_fundamental_mode(inweb_instructions *args, int new_material) {
|
||||||
if ((args->inweb_mode != NO_MODE) && (args->inweb_mode != new_material))
|
if ((args->inweb_mode != NO_MODE) && (args->inweb_mode != new_material))
|
||||||
Errors__fatal("can only do one at a time - weaving, tangling or analysing");
|
Errors__fatal("can only do one at a time - weaving, tangling or analysing");
|
||||||
|
@ -21301,7 +21310,7 @@ void Analyser__analyse_find(web *W, source_line *L, text_stream *identifier, int
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 392 "inweb/Chapter 3/The Analyser.w"
|
#line 392 "inweb/Chapter 3/The Analyser.w"
|
||||||
void Analyser__write_makefile(web *W, filename *F, module_search *I) {
|
void Analyser__write_makefile(web *W, filename *F, module_search *I, text_stream *platform) {
|
||||||
pathname *P = W->md->path_to_web;
|
pathname *P = W->md->path_to_web;
|
||||||
text_stream *short_name = Pathnames__directory_name(P);
|
text_stream *short_name = Pathnames__directory_name(P);
|
||||||
if ((Str__len(short_name) == 0) ||
|
if ((Str__len(short_name) == 0) ||
|
||||||
|
@ -21313,7 +21322,7 @@ void Analyser__write_makefile(web *W, filename *F, module_search *I) {
|
||||||
DISCARD_TEXT(leafname)
|
DISCARD_TEXT(leafname)
|
||||||
if (!(TextFiles__exists(prototype)))
|
if (!(TextFiles__exists(prototype)))
|
||||||
prototype = Filenames__in(path_to_inweb_materials, TL_IS_225);
|
prototype = Filenames__in(path_to_inweb_materials, TL_IS_225);
|
||||||
Makefiles__write(W, prototype, F, I);
|
Makefiles__write(W, prototype, F, I, platform);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Analyser__write_gitignore(web *W, filename *F) {
|
void Analyser__write_gitignore(web *W, filename *F) {
|
||||||
|
@ -31185,7 +31194,8 @@ void TeXUtilities__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 12 "inweb/Chapter 6/Makefiles.w"
|
#line 12 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__write(web *W, filename *prototype, filename *F, module_search *I) {
|
void Makefiles__write(web *W, filename *prototype, filename *F, module_search *I,
|
||||||
|
text_stream *platform) {
|
||||||
linked_list *L = NEW_LINKED_LIST(preprocessor_macro);
|
linked_list *L = NEW_LINKED_LIST(preprocessor_macro);
|
||||||
Preprocessor__new_macro(L,
|
Preprocessor__new_macro(L,
|
||||||
TL_IS_636, NULL,
|
TL_IS_636, NULL,
|
||||||
|
@ -31206,15 +31216,16 @@ void Makefiles__write(web *W, filename *prototype, filename *F, module_search *I
|
||||||
makefile_specifics *specifics = CREATE(makefile_specifics);
|
makefile_specifics *specifics = CREATE(makefile_specifics);
|
||||||
|
|
||||||
{
|
{
|
||||||
#line 56 "inweb/Chapter 6/Makefiles.w"
|
#line 58 "inweb/Chapter 6/Makefiles.w"
|
||||||
specifics->for_web = W;
|
specifics->for_web = W;
|
||||||
specifics->tools_dictionary = Dictionaries__new(16, FALSE);
|
specifics->tools_dictionary = Dictionaries__new(16, FALSE);
|
||||||
specifics->webs_dictionary = Dictionaries__new(16, FALSE);
|
specifics->webs_dictionary = Dictionaries__new(16, FALSE);
|
||||||
specifics->modules_dictionary = Dictionaries__new(16, FALSE);
|
specifics->modules_dictionary = Dictionaries__new(16, FALSE);
|
||||||
specifics->search_path = I;
|
specifics->search_path = I;
|
||||||
|
specifics->which_platform = platform;
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 31 "inweb/Chapter 6/Makefiles.w"
|
#line 32 "inweb/Chapter 6/Makefiles.w"
|
||||||
;
|
;
|
||||||
|
|
||||||
text_stream *header = Str__new();
|
text_stream *header = Str__new();
|
||||||
|
@ -31226,9 +31237,9 @@ void Makefiles__write(web *W, filename *prototype, filename *F, module_search *I
|
||||||
STORE_POINTER_makefile_specifics(specifics), '#');
|
STORE_POINTER_makefile_specifics(specifics), '#');
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 54 "inweb/Chapter 6/Makefiles.w"
|
#line 56 "inweb/Chapter 6/Makefiles.w"
|
||||||
|
|
||||||
#line 65 "inweb/Chapter 6/Makefiles.w"
|
#line 68 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__identity_settings_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
void Makefiles__identity_settings_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
||||||
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
||||||
makefile_specifics *specifics = RETRIEVE_POINTER_makefile_specifics(PPS->specifics);
|
makefile_specifics *specifics = RETRIEVE_POINTER_makefile_specifics(PPS->specifics);
|
||||||
|
@ -31244,13 +31255,16 @@ void Makefiles__identity_settings_expander(preprocessor_macro *mm, preprocessor_
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 87 "inweb/Chapter 6/Makefiles.w"
|
#line 90 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__platform_settings_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
void Makefiles__platform_settings_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
||||||
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
||||||
filename *prototype = Filenames__in(path_to_inweb, TL_IS_645);
|
makefile_specifics *specifics = RETRIEVE_POINTER_makefile_specifics(PPS->specifics);
|
||||||
text_stream *INWEBPLATFORM = Str__new();
|
text_stream *INWEBPLATFORM = Str__duplicate(specifics->which_platform);
|
||||||
TextFiles__read(prototype, FALSE, "can't open platform settings file",
|
if (Str__len(INWEBPLATFORM) == 0) {
|
||||||
TRUE, Makefiles__seek_INWEBPLATFORM, NULL, INWEBPLATFORM);
|
filename *ps = Filenames__in(path_to_inweb, TL_IS_645);
|
||||||
|
TextFiles__read(ps, FALSE, "can't open platform settings file",
|
||||||
|
TRUE, Makefiles__seek_INWEBPLATFORM, NULL, INWEBPLATFORM);
|
||||||
|
}
|
||||||
if (Str__len(INWEBPLATFORM) == 0) {
|
if (Str__len(INWEBPLATFORM) == 0) {
|
||||||
Errors__in_text_file(
|
Errors__in_text_file(
|
||||||
"found platform settings file, but it does not set INWEBPLATFORM", tfp);
|
"found platform settings file, but it does not set INWEBPLATFORM", tfp);
|
||||||
|
@ -31274,7 +31288,7 @@ void Makefiles__seek_INWEBPLATFORM(text_stream *line, text_file_position *tfp, v
|
||||||
Regexp__dispose_of(&mr);
|
Regexp__dispose_of(&mr);
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 119 "inweb/Chapter 6/Makefiles.w"
|
#line 125 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__component_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
void Makefiles__component_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
||||||
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
||||||
makefile_specifics *specifics = RETRIEVE_POINTER_makefile_specifics(PPS->specifics);
|
makefile_specifics *specifics = RETRIEVE_POINTER_makefile_specifics(PPS->specifics);
|
||||||
|
@ -31291,7 +31305,7 @@ void Makefiles__component_expander(preprocessor_macro *mm, preprocessor_state *P
|
||||||
dictionary *D = specifics->tools_dictionary;
|
dictionary *D = specifics->tools_dictionary;
|
||||||
|
|
||||||
{
|
{
|
||||||
#line 152 "inweb/Chapter 6/Makefiles.w"
|
#line 158 "inweb/Chapter 6/Makefiles.w"
|
||||||
web_md *Wm = Reader__load_web_md(Pathnames__from_text(path), NULL,
|
web_md *Wm = Reader__load_web_md(Pathnames__from_text(path), NULL,
|
||||||
specifics->search_path, TRUE);
|
specifics->search_path, TRUE);
|
||||||
Wm->as_module->module_name = Str__duplicate(symbol);
|
Wm->as_module->module_name = Str__duplicate(symbol);
|
||||||
|
@ -31301,25 +31315,25 @@ void Makefiles__component_expander(preprocessor_macro *mm, preprocessor_state *P
|
||||||
Dictionaries__write_value(D, symbol, Wm);
|
Dictionaries__write_value(D, symbol, Wm);
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 133 "inweb/Chapter 6/Makefiles.w"
|
#line 139 "inweb/Chapter 6/Makefiles.w"
|
||||||
;
|
;
|
||||||
|
|
||||||
{
|
{
|
||||||
#line 161 "inweb/Chapter 6/Makefiles.w"
|
#line 167 "inweb/Chapter 6/Makefiles.w"
|
||||||
WRITE("%SLEAF = %S\n", symbol, webname);
|
WRITE("%SLEAF = %S\n", symbol, webname);
|
||||||
WRITE("%SWEB = %S\n", symbol, path);
|
WRITE("%SWEB = %S\n", symbol, path);
|
||||||
WRITE("%SMAKER = $(%SWEB)/%S.mk\n", symbol, symbol, webname);
|
WRITE("%SMAKER = $(%SWEB)/%S.mk\n", symbol, symbol, webname);
|
||||||
WRITE("%SX = $(%SWEB)/Tangled/%S\n", symbol, symbol, webname);
|
WRITE("%SX = $(%SWEB)/Tangled/%S\n", symbol, symbol, webname);
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 134 "inweb/Chapter 6/Makefiles.w"
|
#line 140 "inweb/Chapter 6/Makefiles.w"
|
||||||
;
|
;
|
||||||
} else if (Str__eq(category, TL_IS_649)) {
|
} else if (Str__eq(category, TL_IS_649)) {
|
||||||
int marker = MAKEFILE_WEB_MOM;
|
int marker = MAKEFILE_WEB_MOM;
|
||||||
dictionary *D = specifics->webs_dictionary;
|
dictionary *D = specifics->webs_dictionary;
|
||||||
|
|
||||||
{
|
{
|
||||||
#line 152 "inweb/Chapter 6/Makefiles.w"
|
#line 158 "inweb/Chapter 6/Makefiles.w"
|
||||||
web_md *Wm = Reader__load_web_md(Pathnames__from_text(path), NULL,
|
web_md *Wm = Reader__load_web_md(Pathnames__from_text(path), NULL,
|
||||||
specifics->search_path, TRUE);
|
specifics->search_path, TRUE);
|
||||||
Wm->as_module->module_name = Str__duplicate(symbol);
|
Wm->as_module->module_name = Str__duplicate(symbol);
|
||||||
|
@ -31329,25 +31343,25 @@ void Makefiles__component_expander(preprocessor_macro *mm, preprocessor_state *P
|
||||||
Dictionaries__write_value(D, symbol, Wm);
|
Dictionaries__write_value(D, symbol, Wm);
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 138 "inweb/Chapter 6/Makefiles.w"
|
#line 144 "inweb/Chapter 6/Makefiles.w"
|
||||||
;
|
;
|
||||||
|
|
||||||
{
|
{
|
||||||
#line 161 "inweb/Chapter 6/Makefiles.w"
|
#line 167 "inweb/Chapter 6/Makefiles.w"
|
||||||
WRITE("%SLEAF = %S\n", symbol, webname);
|
WRITE("%SLEAF = %S\n", symbol, webname);
|
||||||
WRITE("%SWEB = %S\n", symbol, path);
|
WRITE("%SWEB = %S\n", symbol, path);
|
||||||
WRITE("%SMAKER = $(%SWEB)/%S.mk\n", symbol, symbol, webname);
|
WRITE("%SMAKER = $(%SWEB)/%S.mk\n", symbol, symbol, webname);
|
||||||
WRITE("%SX = $(%SWEB)/Tangled/%S\n", symbol, symbol, webname);
|
WRITE("%SX = $(%SWEB)/Tangled/%S\n", symbol, symbol, webname);
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 139 "inweb/Chapter 6/Makefiles.w"
|
#line 145 "inweb/Chapter 6/Makefiles.w"
|
||||||
;
|
;
|
||||||
} else if (Str__eq(category, TL_IS_650)) {
|
} else if (Str__eq(category, TL_IS_650)) {
|
||||||
int marker = MAKEFILE_MODULE_MOM;
|
int marker = MAKEFILE_MODULE_MOM;
|
||||||
dictionary *D = specifics->modules_dictionary;
|
dictionary *D = specifics->modules_dictionary;
|
||||||
|
|
||||||
{
|
{
|
||||||
#line 152 "inweb/Chapter 6/Makefiles.w"
|
#line 158 "inweb/Chapter 6/Makefiles.w"
|
||||||
web_md *Wm = Reader__load_web_md(Pathnames__from_text(path), NULL,
|
web_md *Wm = Reader__load_web_md(Pathnames__from_text(path), NULL,
|
||||||
specifics->search_path, TRUE);
|
specifics->search_path, TRUE);
|
||||||
Wm->as_module->module_name = Str__duplicate(symbol);
|
Wm->as_module->module_name = Str__duplicate(symbol);
|
||||||
|
@ -31357,18 +31371,18 @@ void Makefiles__component_expander(preprocessor_macro *mm, preprocessor_state *P
|
||||||
Dictionaries__write_value(D, symbol, Wm);
|
Dictionaries__write_value(D, symbol, Wm);
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 143 "inweb/Chapter 6/Makefiles.w"
|
#line 149 "inweb/Chapter 6/Makefiles.w"
|
||||||
;
|
;
|
||||||
|
|
||||||
{
|
{
|
||||||
#line 161 "inweb/Chapter 6/Makefiles.w"
|
#line 167 "inweb/Chapter 6/Makefiles.w"
|
||||||
WRITE("%SLEAF = %S\n", symbol, webname);
|
WRITE("%SLEAF = %S\n", symbol, webname);
|
||||||
WRITE("%SWEB = %S\n", symbol, path);
|
WRITE("%SWEB = %S\n", symbol, path);
|
||||||
WRITE("%SMAKER = $(%SWEB)/%S.mk\n", symbol, symbol, webname);
|
WRITE("%SMAKER = $(%SWEB)/%S.mk\n", symbol, symbol, webname);
|
||||||
WRITE("%SX = $(%SWEB)/Tangled/%S\n", symbol, symbol, webname);
|
WRITE("%SX = $(%SWEB)/Tangled/%S\n", symbol, symbol, webname);
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 144 "inweb/Chapter 6/Makefiles.w"
|
#line 150 "inweb/Chapter 6/Makefiles.w"
|
||||||
;
|
;
|
||||||
} else {
|
} else {
|
||||||
Errors__in_text_file("category should be 'tool', 'module' or 'web'", tfp);
|
Errors__in_text_file("category should be 'tool', 'module' or 'web'", tfp);
|
||||||
|
@ -31376,7 +31390,7 @@ void Makefiles__component_expander(preprocessor_macro *mm, preprocessor_state *P
|
||||||
PPS->last_line_was_blank = FALSE;
|
PPS->last_line_was_blank = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 169 "inweb/Chapter 6/Makefiles.w"
|
#line 175 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__components_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
void Makefiles__components_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
||||||
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
||||||
Preprocessor__set_loop_var_name(loop, TL_IS_651);
|
Preprocessor__set_loop_var_name(loop, TL_IS_651);
|
||||||
|
@ -31387,41 +31401,7 @@ void Makefiles__components_expander(preprocessor_macro *mm, preprocessor_state *
|
||||||
int marker = MAKEFILE_TOOL_MOM;
|
int marker = MAKEFILE_TOOL_MOM;
|
||||||
|
|
||||||
{
|
{
|
||||||
#line 190 "inweb/Chapter 6/Makefiles.w"
|
#line 196 "inweb/Chapter 6/Makefiles.w"
|
||||||
module *M;
|
|
||||||
LOOP_OVER(M, module) {
|
|
||||||
if ((M->origin_marker == marker) &&
|
|
||||||
((Str__eq(set, TL_IS_656)) || (Str__eq(set, M->module_tag)))) {
|
|
||||||
text_stream *value = M->module_name;
|
|
||||||
Preprocessor__add_loop_iteration(loop, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
#line 177 "inweb/Chapter 6/Makefiles.w"
|
|
||||||
;
|
|
||||||
} else if (Str__eq(category, TL_IS_654)) {
|
|
||||||
int marker = MAKEFILE_WEB_MOM;
|
|
||||||
|
|
||||||
{
|
|
||||||
#line 190 "inweb/Chapter 6/Makefiles.w"
|
|
||||||
module *M;
|
|
||||||
LOOP_OVER(M, module) {
|
|
||||||
if ((M->origin_marker == marker) &&
|
|
||||||
((Str__eq(set, TL_IS_656)) || (Str__eq(set, M->module_tag)))) {
|
|
||||||
text_stream *value = M->module_name;
|
|
||||||
Preprocessor__add_loop_iteration(loop, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
#line 180 "inweb/Chapter 6/Makefiles.w"
|
|
||||||
;
|
|
||||||
} else if (Str__eq(category, TL_IS_655)) {
|
|
||||||
int marker = MAKEFILE_MODULE_MOM;
|
|
||||||
|
|
||||||
{
|
|
||||||
#line 190 "inweb/Chapter 6/Makefiles.w"
|
|
||||||
module *M;
|
module *M;
|
||||||
LOOP_OVER(M, module) {
|
LOOP_OVER(M, module) {
|
||||||
if ((M->origin_marker == marker) &&
|
if ((M->origin_marker == marker) &&
|
||||||
|
@ -31433,13 +31413,47 @@ void Makefiles__components_expander(preprocessor_macro *mm, preprocessor_state *
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 183 "inweb/Chapter 6/Makefiles.w"
|
#line 183 "inweb/Chapter 6/Makefiles.w"
|
||||||
|
;
|
||||||
|
} else if (Str__eq(category, TL_IS_654)) {
|
||||||
|
int marker = MAKEFILE_WEB_MOM;
|
||||||
|
|
||||||
|
{
|
||||||
|
#line 196 "inweb/Chapter 6/Makefiles.w"
|
||||||
|
module *M;
|
||||||
|
LOOP_OVER(M, module) {
|
||||||
|
if ((M->origin_marker == marker) &&
|
||||||
|
((Str__eq(set, TL_IS_656)) || (Str__eq(set, M->module_tag)))) {
|
||||||
|
text_stream *value = M->module_name;
|
||||||
|
Preprocessor__add_loop_iteration(loop, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#line 186 "inweb/Chapter 6/Makefiles.w"
|
||||||
|
;
|
||||||
|
} else if (Str__eq(category, TL_IS_655)) {
|
||||||
|
int marker = MAKEFILE_MODULE_MOM;
|
||||||
|
|
||||||
|
{
|
||||||
|
#line 196 "inweb/Chapter 6/Makefiles.w"
|
||||||
|
module *M;
|
||||||
|
LOOP_OVER(M, module) {
|
||||||
|
if ((M->origin_marker == marker) &&
|
||||||
|
((Str__eq(set, TL_IS_656)) || (Str__eq(set, M->module_tag)))) {
|
||||||
|
text_stream *value = M->module_name;
|
||||||
|
Preprocessor__add_loop_iteration(loop, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#line 189 "inweb/Chapter 6/Makefiles.w"
|
||||||
;
|
;
|
||||||
} else {
|
} else {
|
||||||
Errors__in_text_file("category should be 'tool', 'module' or 'web'", tfp);
|
Errors__in_text_file("category should be 'tool', 'module' or 'web'", tfp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 202 "inweb/Chapter 6/Makefiles.w"
|
#line 208 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__dependent_files_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
void Makefiles__dependent_files_expander(preprocessor_macro *mm, preprocessor_state *PPS,
|
||||||
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
text_stream **parameter_values, preprocessor_loop *loop, text_file_position *tfp) {
|
||||||
makefile_specifics *specifics = RETRIEVE_POINTER_makefile_specifics(PPS->specifics);
|
makefile_specifics *specifics = RETRIEVE_POINTER_makefile_specifics(PPS->specifics);
|
||||||
|
@ -31492,12 +31506,12 @@ void Makefiles__dependent_files_expander(preprocessor_macro *mm, preprocessor_st
|
||||||
PPS->last_line_was_blank = FALSE;
|
PPS->last_line_was_blank = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 258 "inweb/Chapter 6/Makefiles.w"
|
#line 264 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__pattern(OUTPUT_STREAM, linked_list *L, filename *F) {
|
void Makefiles__pattern(OUTPUT_STREAM, linked_list *L, filename *F) {
|
||||||
dictionary *patterns_done = Dictionaries__new(16, TRUE);
|
dictionary *patterns_done = Dictionaries__new(16, TRUE);
|
||||||
if (F)
|
if (F)
|
||||||
{
|
{
|
||||||
#line 269 "inweb/Chapter 6/Makefiles.w"
|
#line 275 "inweb/Chapter 6/Makefiles.w"
|
||||||
pathname *P = Filenames__up(F);
|
pathname *P = Filenames__up(F);
|
||||||
TEMPORARY_TEXT(leaf_pattern)
|
TEMPORARY_TEXT(leaf_pattern)
|
||||||
WRITE_TO(leaf_pattern, "%S", Pathnames__directory_name(P));
|
WRITE_TO(leaf_pattern, "%S", Pathnames__directory_name(P));
|
||||||
|
@ -31524,14 +31538,14 @@ void Makefiles__pattern(OUTPUT_STREAM, linked_list *L, filename *F) {
|
||||||
DISCARD_TEXT(tester)
|
DISCARD_TEXT(tester)
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 260 "inweb/Chapter 6/Makefiles.w"
|
#line 266 "inweb/Chapter 6/Makefiles.w"
|
||||||
;
|
;
|
||||||
section_md *Sm;
|
section_md *Sm;
|
||||||
LOOP_OVER_LINKED_LIST(Sm, section_md, L) {
|
LOOP_OVER_LINKED_LIST(Sm, section_md, L) {
|
||||||
filename *F = Sm->source_file_for_section;
|
filename *F = Sm->source_file_for_section;
|
||||||
|
|
||||||
{
|
{
|
||||||
#line 269 "inweb/Chapter 6/Makefiles.w"
|
#line 275 "inweb/Chapter 6/Makefiles.w"
|
||||||
pathname *P = Filenames__up(F);
|
pathname *P = Filenames__up(F);
|
||||||
TEMPORARY_TEXT(leaf_pattern)
|
TEMPORARY_TEXT(leaf_pattern)
|
||||||
WRITE_TO(leaf_pattern, "%S", Pathnames__directory_name(P));
|
WRITE_TO(leaf_pattern, "%S", Pathnames__directory_name(P));
|
||||||
|
@ -31558,12 +31572,12 @@ void Makefiles__pattern(OUTPUT_STREAM, linked_list *L, filename *F) {
|
||||||
DISCARD_TEXT(tester)
|
DISCARD_TEXT(tester)
|
||||||
|
|
||||||
}
|
}
|
||||||
#line 264 "inweb/Chapter 6/Makefiles.w"
|
#line 270 "inweb/Chapter 6/Makefiles.w"
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 299 "inweb/Chapter 6/Makefiles.w"
|
#line 305 "inweb/Chapter 6/Makefiles.w"
|
||||||
void Makefiles__pathname_slashed(OUTPUT_STREAM, pathname *P) {
|
void Makefiles__pathname_slashed(OUTPUT_STREAM, pathname *P) {
|
||||||
TEMPORARY_TEXT(PT)
|
TEMPORARY_TEXT(PT)
|
||||||
WRITE_TO(PT, "%p", P);
|
WRITE_TO(PT, "%p", P);
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
Prerelease: alpha.1
|
Prerelease: alpha.1
|
||||||
Build Date: 23 April 2022
|
Build Date: 24 April 2022
|
||||||
Build Number: 1A92
|
Build Number: 1A93
|
||||||
|
|
30
scripts/first.sh
Normal file
30
scripts/first.sh
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
echo "(A script to make a first build of Inweb)"
|
||||||
|
|
||||||
|
PLATFORM="$1"
|
||||||
|
|
||||||
|
if [ "$PLATFORM" = "" ]; then
|
||||||
|
echo "This script needs a parameter for the platform you are working on: macos, macos32, linux, windows, unix"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "(You have chosen the platform '$PLATFORM')"
|
||||||
|
|
||||||
|
echo "(Step 1 of 3: copying the platform settings)"
|
||||||
|
if ! ( cp -f inweb/Materials/platforms/$PLATFORM.mk inweb/platform-settings.mk; ) then
|
||||||
|
echo "(Okay, so that failed. Is this a platform supported by Inweb?)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "(Step 2 of 3: copying the right flavour of inweb.mk)"
|
||||||
|
if ! ( cp -f inweb/Materials/platforms/inweb-on-$PLATFORM.mk inweb/inweb.mk; ) then
|
||||||
|
echo "(Okay, so that failed. Is this a platform supported by Inweb?)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "(Step 3 of 3: building inweb from its ready-tangled form)"
|
||||||
|
if ! ( make -f inweb/inweb.mk initial; ) then
|
||||||
|
echo "(Okay, so that failed. Maybe your environment doesn't have the compilers anticipated?)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "(Done!)"
|
|
@ -5,6 +5,8 @@
|
||||||
# inweb/Tangled/inweb -prototype inweb/scripts/inweb.giscript -gitignore inweb/.gitignore
|
# inweb/Tangled/inweb -prototype inweb/scripts/inweb.giscript -gitignore inweb/.gitignore
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
inweb.mk
|
||||||
|
platform-settings.mk
|
||||||
Manual.html
|
Manual.html
|
||||||
debug-log.txt
|
debug-log.txt
|
||||||
tags
|
tags
|
||||||
|
@ -19,7 +21,6 @@ Tests/hashes.intest
|
||||||
Tests/_Results_Actual/
|
Tests/_Results_Actual/
|
||||||
foundation-test/foundation-test.mk
|
foundation-test/foundation-test.mk
|
||||||
foundation-test/Tests/Test Cases/_Results_Actual/
|
foundation-test/Tests/Test Cases/_Results_Actual/
|
||||||
platform-settings.mk
|
|
||||||
foundation-module/Woven/
|
foundation-module/Woven/
|
||||||
Examples/*.o
|
Examples/*.o
|
||||||
Examples/*.pdf
|
Examples/*.pdf
|
||||||
|
|
|
@ -18,6 +18,15 @@
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Variants of this file exist for each of the following supported platforms,
|
||||||
|
# generated from inweb.mkscript and Materials/platforms/PLATFORM.mkscript in
|
||||||
|
# each case; when a platform is selected by the scripts/first.sh shell script,
|
||||||
|
# the relevant one is copied to become inweb/inweb.mk.
|
||||||
|
|
||||||
|
{set name: PLATFORMS value: macos, macos32, windows, linux, unix}
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
{platform-settings}
|
{platform-settings}
|
||||||
|
|
||||||
ME = inweb
|
ME = inweb
|
||||||
|
@ -50,30 +59,15 @@ force: $(ME)/platform-settings.mk
|
||||||
|
|
||||||
{define: make-settings platform: PLATFORM}
|
{define: make-settings platform: PLATFORM}
|
||||||
$(INWEB) -prototype $(ME)/Materials/platforms/{PLATFORM}.mkscript -makefile $(ME)/Materials/platforms/{PLATFORM}.mk
|
$(INWEB) -prototype $(ME)/Materials/platforms/{PLATFORM}.mkscript -makefile $(ME)/Materials/platforms/{PLATFORM}.mk
|
||||||
|
$(INWEB) -platform {PLATFORM} -prototype $(ME)/scripts/inweb.mkscript -makefile $(ME)/Materials/platforms/inweb-on-{PLATFORM}.mk
|
||||||
{end-define}
|
{end-define}
|
||||||
|
|
||||||
.PHONY: makers
|
.PHONY: makers
|
||||||
makers:
|
makers:
|
||||||
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
{make-settings platform: macos}
|
{repeat with: PLATFORM in: {PLATFORMS}}
|
||||||
{make-settings platform: macos32}
|
{make-settings platform: {PLATFORM}}
|
||||||
{make-settings platform: windows}
|
{end-repeat}
|
||||||
{make-settings platform: linux}
|
|
||||||
{make-settings platform: unix}
|
|
||||||
|
|
||||||
{define: target-to-choose platform: PLATFORM}
|
|
||||||
.PHONY: {PLATFORM}
|
|
||||||
{PLATFORM}:
|
|
||||||
cp -f $(ME)/Materials/platforms/{PLATFORM}.mk $(ME)/platform-settings.mk
|
|
||||||
echo "=== Platform set to '{PLATFORM}'. Now: make -f inweb/inweb.mk initial ==="
|
|
||||||
|
|
||||||
{end-define}
|
|
||||||
|
|
||||||
{target-to-choose platform: macos}
|
|
||||||
{target-to-choose platform: macos32}
|
|
||||||
{target-to-choose platform: windows}
|
|
||||||
{target-to-choose platform: linux}
|
|
||||||
{target-to-choose platform: unix}
|
|
||||||
|
|
||||||
.PHONY: initial
|
.PHONY: initial
|
||||||
initial: $(ME)/platform-settings.mk
|
initial: $(ME)/platform-settings.mk
|
||||||
|
@ -116,7 +110,7 @@ endef
|
||||||
|
|
||||||
define make-ftest
|
define make-ftest
|
||||||
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
$(INWEB) $(FTEST) -makefile $(FTEST)/foundation-test.mk
|
||||||
make -f $(FTEST)/foundation-test.mk
|
make -f $(FTEST)/foundation-test.mk force
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Testing the program - which requires intest to be installed too.
|
# Testing the program - which requires intest to be installed too.
|
||||||
|
|
|
@ -51,17 +51,25 @@ though only because its build settings are currently missing from the inweb
|
||||||
distribution. The older macos32 platform won't build with the MacOS SDK from
|
distribution. The older macos32 platform won't build with the MacOS SDK from
|
||||||
10.14 onwards, and in any case 32-bit executables won't run from 10.15 onwards:
|
10.14 onwards, and in any case 32-bit executables won't run from 10.15 onwards:
|
||||||
so use the default macos unless you need to build for an old version of MacOS.
|
so use the default macos unless you need to build for an old version of MacOS.
|
||||||
* "make -f inweb/inweb.mk macos"
|
* "bash inweb/scripts/first.sh linux"
|
||||||
* "make -f inweb/inweb.mk macos32"
|
* "bash inweb/scripts/first.sh macos"
|
||||||
* "make -f inweb/inweb.mk linux"
|
* "bash inweb/scripts/first.sh macos32"
|
||||||
* "make -f inweb/inweb.mk windows"
|
* "bash inweb/scripts/first.sh unix"
|
||||||
* "make -f inweb/inweb.mk unix"
|
* "bash inweb/scripts/first.sh windows"
|
||||||
* "make -f inweb/inweb.mk android"
|
|
||||||
* Perform the initial compilation: "make -f inweb/inweb.mk initial"
|
|
||||||
* Test that all is well: "inweb/Tangled/inweb -help"
|
* Test that all is well: "inweb/Tangled/inweb -help"
|
||||||
|
|
||||||
You should now have a working copy of Inweb. To build it again, no need to
|
You should now have a working copy of Inweb, with its own makefile tailored
|
||||||
use "initial", and you should just: "make -f inweb/inweb.mk"
|
to your platform now in place (at inweb/inweb.mk). To build inweb again, e.g.
|
||||||
|
after editing inweb's source code, do not run the shell script first.sh again.
|
||||||
|
Instead, you must use the makefile:
|
||||||
|
|
||||||
|
* make -f inweb/inweb.mk
|
||||||
|
|
||||||
|
If you wish to tweak the makefile, do not edit it directly. Instead,
|
||||||
|
edit inweb/scripts/inweb.mkscript and inweb/Materials/platforms/PLATFORM.mkscript,
|
||||||
|
where PLATFORM is your choice as above (e.g., 'macos'). Then run "make -f inweb/inweb.mk makers"
|
||||||
|
to rebuild all these makefiles with your changes incorporated; and try running
|
||||||
|
the shell script "inweb/scripts/first.sh" again.
|
||||||
|
|
||||||
## Also Included
|
## Also Included
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue