# # If you add a new variable to this file (mk/make_config), # make sure to also add a default value to mk/defaults. # Shell. += extract-cc(argv) = awk() case $"^bytecomp_c_compiler: " println($2) extract-cflags(argv) = awk() case $"^bytecomp_c_compiler: " println($(concat $" ", $(subrange 3, $(sub $(length $*), 3), $*))) extract-ccomp-type(argv) = awk() case $"^ccomp_type: " println($2) # preconfig file (= written by configure). Might not exist. public.PRECONFIG_FILE = $(file $(ROOT)/.preconfig) # # Function to generate the config file # MakeConfig(CONFIG_FILE) = # Now apply preconfig if $(file-exists $(PRECONFIG_FILE)) include $(PRECONFIG_FILE) BINDIR = $(PREFIX)/bin LIBDIR = $(PREFIX)/lib export # # If possible, express PREFIX subdirs via $(PREFIX)/... # if $(equal $(BINDIR), $(dir $(PREFIX)/bin)) BINDIR = $'$(PREFIX)/bin' export if $(equal $(LIBDIR), $(dir $(PREFIX)/lib)) LIBDIR = $'$(PREFIX)/lib' export cc = $(shell $(OCAMLC) -config | extract-cc) cflags = $(shell $(OCAMLC) -config | extract-cflags) cflags = $(filter-out -W%, $(cflags)) ccomptype = $(shell $(OCAMLC) -config | extract-ccomp-type) if $(equal $(ccomptype), cc) cflags = $(cflags) -Wall export CONFIG = $"""\ # Main OMake configuration file. # # This file ($(CONFIG_FILE)) is generated by omake using mk/make_config. # If you want to change anything except for the variable values, # put it into $(CONFIG_FILE).local. # # # Where is the install location? OMake installs files into the # following directories. # BINDIR: program executables # LIBDIR: omake standard library # PREFIX = $$(dir $$'$(PREFIX)') BINDIR = $$(dir $$"$(BINDIR)") LIBDIR = $$(dir $$"$(LIBDIR)") # # What C compiler do you want to use? # By default, this is now set to the same C compiler as used by ocaml. # CC = $(getenv CC, $(cc)) CFLAGS = $(getenv CFLAGS, $(cflags)) CCOMPTYPE = $(getenv CCOMPTYPE, $(ccomptype)) # # Do you want native and/or byte code? # By default, we make native code. If you want # byte code, set it to true. # NATIVE_ENABLED = $(NATIVE_ENABLED) BYTE_ENABLED = $(BYTE_ENABLED) """$(if $(READLINE_AVAILABLE), $""" # # Do you want to include readline for the interactive shell? # Your system appears to support readline, so this is enabled by default. # READLINE_ENABLED = $(READLINE_ENABLED) """, $""" # # Your system does not appear to have the readline library development files # installed, readline support in the interactive shell will not be available. # """)$(if $(NCURSES_AVAILABLE), $""" # # Do you want to include terminal information (terminfo) capabilities? # Your system appears to support ncurses, so this is enabled by default. # NCURSES_ENABLED = $(NCURSES_ENABLED) """, $""" # # Your system does not appear to have the ncurses library development files # installed, terminal information (terminfo) capabilities will not be available. # """)$(if $(FAM_AVAILABLE), $""" # # Do you want to include filesystem monitoring? This will enable the # omake -P and -p options, which are quite useful. # Your system appears to support this functionality (via FAM, Gamin, kqueue, or Win32). # FAM_ENABLED = $(FAM_ENABLED) """, $""" # # Your system does not appear to support filesystem monitoring (either FAM library, # or Gamin library, or Kqueue event interface). Omake's -P and -p options will not # be available. # """)$""" # # By default, how often should the .omakedb database be saved (in seconds, can be # a floating point number). # DEFAULT_SAVE_INTERVAL = $(DEFAULT_SAVE_INTERVAL) """$(if $(OCAMLDEP_MODULES_AVAILABLE), $""" # # The OCAMLDEP_MODULES_ENABLED variable specifies whether to use the -modules # option to ocamldep. Dependency analysis is much better with this option, # but it is also a little slower. Also, the -modules option is only # available with the standard OCaml distribution starting with the 3.10 release. # OMake includes a patched ocamldep, in case you want to use it with an older release # of OCaml. # OCAMLDEP_MODULES_ENABLED = $(OCAMLDEP_MODULES_ENABLED) """, $""" # # Your system does not seem to have a version of the ocamldep that supports the # new -modules option. Will use the traditional (potentially less precise) # dependency analysis. # # OCAMLDEP_MODULES_ENABLED is false """)$""" # # Do you want to enable native-code profiling? # Unless you really care, you should leave this disabled. # NATIVE_PROFILE = $(NATIVE_PROFILE) """ # Save the text in the output file exists = $(file-exists $(CONFIG_FILE)) if $(exists) eprintln(Updating the $(CONFIG_FILE) file.) fprint($(CONFIG_FILE), $(CONFIG))