]> bicyclesonthemoon.info Git - botm/config/commitdiff
self-generation v1.0.0
authorb <rowerynaksiezycu@gmail.com>
Mon, 8 May 2023 20:55:24 +0000 (20:55 +0000)
committerb <rowerynaksiezycu@gmail.com>
Mon, 8 May 2023 20:55:24 +0000 (20:55 +0000)
configure.1.pl [moved from configure.pl with 97% similarity]
makefile
makefile.1.mak
settings-direct.txt [new file with mode: 0644]

similarity index 97%
rename from configure.pl
rename to configure.1.pl
index d575160773d3af8ae0682dfeb6a5b0e607b47299..34972c13d99bbcd9785cf8615ac0ff54bddeaa48 100755 (executable)
@@ -1,9 +1,9 @@
-#!/usr/bin/perl
+###RUN_PERL: #!/usr/bin/perl
 
 # configure.pl
 # The new BOTM configuration tool
 
-#    Copyright (C) 2022  Balthasar Szczepański
+#    Copyright (C) 2022, 2023  Balthasar Szczepański
 #
 #    This program is free software: you can redistribute it and/or modify
 #    it under the terms of the GNU Affero General Public License as
 #
 # perl configure.pl --option1 ... name=value ... configfile1 configfile2 ... --input inputfile1 inputfile2 ... --output outputfile1 outputfile2
 #
-# Or './configure.pl' instead of 'perl configure.pl' but then we're making
-# the assumption that Perl is installed at '/usr/bin/perl'.
-# Of course we can make configure.pl conrigurable by configure.pl and then
-# make it reconfigure itself to adapt to where Perl is but I decided to not
-# go  there. Instead I can handle this on the level of the makefile (which
-# is configurable by configure.pl)
+# Or './configure.pl' instead of 'perl configure.pl'.
 #
 # There are 3 types of commandline parameters:
 # * in form 'name=value' where 'name' is a valid setting name (described
@@ -95,7 +90,7 @@
 # * anything else will be treated as a path to a file: input, output,
 #   or configuration. By default configuration files are expected.
 #
-# The script reads configuration from all configuration iles given in the
+# The script reads configuration from all configuration files given in the
 # command line parameters. The effect is similar to reading a single
 # concatenated file.
 #
 # In each line it looks for replacement patterns, replaces them if found,
 # and prints the line to the output.
 #
-# Whenever I write 'whitespace' I mean it can space '' or TAB '\t'.
+# Whenever I write 'whitespace' I mean it can be space ' ' or TAB '\t'.
 #
 # It is possible to include files like this:
 #   include path_to_include
 #
 # In the second format (name = value) some processing is performed:
 #   - Any amount (including 0) of whitespace is allowed before and
-#     after the '+'.
+#     after the '='.
 #   - Comments starting from '#' are removed.
 #   - whitespace at beginning and end of each line are removed
 #   - escaped characters (by '\') are processed.
index 33fbd944932ac5444a494d1a4da855533101e87a..1ab71eafc6b5715ac579d56d912026589f79946f 100644 (file)
--- a/makefile
+++ b/makefile
@@ -19,17 +19,25 @@ MKDIR = /usr/bin/mkdir
 
 BIN_DIR = /botm/bin/test-config
 
+ifndef PERL
+PERL = perl
+endif
 
-CONFIGURE = $(PERL) ./configure.pl
+CONFIGURE = $(PERL) ./configure.1.pl
 
 all: exec
        
-makefile: makefile.1.mak configure.pl $(CONFIGFILE)
+makefile: makefile.1.mak configure.1.pl $(CONFIGFILE)
        $(CONFIGURE) $(CONFIGFILE) < makefile.1.mak > makefile
 
+configure.pl: configure.1.pl
+       $(CONFIGURE) $(CONFIGFILE) < configure.1.pl > configure.pl
+
 exec: configure.pl
        $(CHMOD) +x configure.pl
 
+ifdef BIN_DIR
+
 bin_dir:
        $(MKDIR) -p $(BIN_DIR)
 
@@ -42,9 +50,12 @@ rm_bin:
 install: cp_bin
        
 uninstall: rm_bin
-       
+
+endif
+
 clean:
        $(CONFIGURE) $(DEFAULT_CONFIGFILE) < makefile.1.mak > makefile
+       $(RM) configure.pl
 
 PHONY: all exec bin_dir cp_bin rm_bin install uninstall clean
        
index 6adcfc46e96aeed2fb65b7a34e1716601cfd7bee..3f8ac086cb9fe8240fce1484878403433a9ea133 100644 (file)
@@ -19,17 +19,25 @@ DEFAULT_CONFIGFILE = settings-$(DEFAULT_TARGET).txt settings.txt
 
 ###make_bin_dir: BIN_DIR = /botm/bin/configure
 
+ifndef PERL
+PERL = perl
+endif
 
-CONFIGURE = $(PERL) ./configure.pl
+CONFIGURE = $(PERL) ./configure.1.pl
 
 all: exec
        
-makefile: makefile.1.mak configure.pl $(CONFIGFILE)
+makefile: makefile.1.mak configure.1.pl $(CONFIGFILE)
        $(CONFIGURE) $(CONFIGFILE) < makefile.1.mak > makefile
 
+configure.pl: configure.1.pl
+       $(CONFIGURE) $(CONFIGFILE) < configure.1.pl > configure.pl
+
 exec: configure.pl
        $(CHMOD) +x configure.pl
 
+ifdef BIN_DIR
+
 bin_dir:
        $(MKDIR) -p $(BIN_DIR)
 
@@ -42,9 +50,12 @@ rm_bin:
 install: cp_bin
        
 uninstall: rm_bin
-       
+
+endif
+
 clean:
        $(CONFIGURE) $(DEFAULT_CONFIGFILE) < makefile.1.mak > makefile
+       $(RM) configure.pl
 
 PHONY: all exec bin_dir cp_bin rm_bin install uninstall clean
        
diff --git a/settings-direct.txt b/settings-direct.txt
new file mode 100644 (file)
index 0000000..09b5d8a
--- /dev/null
@@ -0,0 +1,8 @@
+target: direct
+bin_dir:
+
+perl: /usr/bin/perl
+chmod: /usr/bin/chmod
+cp: /usr/bin/cp
+rm: /usr/bin/rm
+mkdir: /usr/bin/mkdir