# SNOBOL4SETUP(3) | CSNOBOL4B 2.3.2 | Janurary 1, 2024

## NAME

snobol4setup – SNOBOL4 Loadable module setup utility

## SYNOPSIS

snobol4 setup.sno command

## DESCRIPTION

The example program below (canonically called setup.sno) can be invoked (portably across different operating systems) with the following commands:

## OPTIONS

build
  Compiles and links a dynamicly loadable executable file named modulename (with the appropriate extension for the local system). modulename.sno will be created from: pre.sno (if it exists), followed by lines from sourcefiles: any instances of LOAD(...) present in * comments, any groups of lines starting with *=pea and ending with *=cut (inclusive), any comment lines bracketed by *=snobol4 and *=cut (exclusive) will be copied without the leading *, and finally funcs.sno (if it exists).

install
  installs binary, include and man page files.

clean
  cleans up.

## EXAMPLE

    -INCLUDE 'setuputil.sno'
            t = TABLE()
            t['module'] = 'modulename'
            t['sources'] = 'sourcefile.c,othername.c'
            t['author'] = t['maintainer'] = 'Yourname Here'
            t['author_email'] = t['maintainer_email'] = 'name@doma.in'
            t['include_dirs'] = 'list,of,dirs,to,search'
            t['library_dirs'] = 'list,of,dirs,to,search'
            t['libraries'] = 'list,of,library,names,to,link,against'
            t['license'] = 'BSD'
            setup(t)
    end

If LOAD() functions appear as the first thing on a comment line in the source files, they are output to the generated modulename.sno include file so that the module and its functions are loaded when the include file is used.

snopea(7) directives in comments in the source files will be used to generate man(7) and .html documentation files.

## NOT CONFORMING TO

Inspired by Python setuptools, easyinstall, et.al.

## AUTHOR

Philip L. Budne

## BUGS

Has not been tested with proprietary Un*x native toolchains.

## SEE ALSO

snobol4(1), snobol4load(3), snopea(7)