---
name: "bglmake"
section: "1"
platform: "linux"
package: "bigloo"
version: "4.7a-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/bglmake"
---

# bglmake(1)

create or update Bigloo makefiles

## NAME

bglmake - create or update Bigloo makefiles

## SYNOPSIS

**bglmake** \[ options \] \[ sourcefile \]

## DESCRIPTION

**bglmake** reads *sourcefile*, computes the transitive closure of the import  relationship and generates a *makefile* file that can be used by the **glmake(1)** program to compile the application or the library. If no *sourcefile* is provided, then bglmake display the template file for generating Makefile.

## OPTIONS

-

  - **-v**

  Verbose mode

- **-q**

  Prevent loading the *~/.bglmakerc* user configuration file.

- **-suffix \<suf\>**

  Adds *suf* to the **bglmake** source file suffixes list. Default  suffixes are "scm", "sch" and "bgl".

- **file**

  is the name of the "main" file for an application of the name of the "heap" file for a library.

- **-I\<path\>**

  Add *path* to the directory list read for searching Bigloo source files.

- **-X\<path\>**

  Exclude *path* from the directory list read for searching Bigloo  source files.

- **-o \<makefile\>**

  The name of the *makefile* file to be updated

- **-p \<name\>**

  The *name* of the project. This name is used in backup and versionning  entries.

- **-t \<name\>**

  The *name* of the target binary file or the name of the library.

- **-f\<template\>**

  Set an alternative template file.

- **-object \<obj\>**

  Update the makefile for adding *obj* to the object list.

- **-source \<src\>**

  Update the makefile for adding *src* to the source file list.

- **-main \<file\>**

  Set the initial main file and tells **bglmake** that the project is an "application" (by opposition to libraries). This *File* is the  starting point of the transitive closure of the imported modules.

- **-heap \<file\>**

  Set the initial heap file and tells **bglmake** that the project is an "library" (by opposition to applications). This *File* is the  starting point of the transitive closure of the imported modules.

## TEMPLATES

When **bglmake** generates a *makefile*, it uses templates. Theses templates may be specified with some option or they be printed out. For that it is enough to call **bglmake** without any parameter. Template files uses some extra "macro". They are:

- this macro is replaced with the project name (option -p). If no *-p* option

  - $\[PROJECT\]

  is used the default project name is the name of the current directory that contains the *sourcefile*.

- $\[TARGET\_NAME\]

  this macro is replaced with the target name (option -t). If no *-t* option is used the default target name is the name of the current directory that contains the *sourcefile*.

- $\[MAKEFILE\]

  this macro is replaced with the *makefile* name (-o option).

## EXAMPLE

A Makefile is created by \`\`bglmake foo.scm -o Makefile''. Then it may be updated with \`\`make updatemakefile''.

## SEE ALSO

[bigloo(1)](/bigloo/1.md), [bglafile(1)](/bglafile/1.md), [bgldepend(1)](/bgldepend/1.md), [bgltags(1)](/bgltags/1.md), [make(1)](/make/1.md), [bglmco(1)](/bglmco/1.md)

## AUTHOR

Manuel SERRANO, Manuel.Serrano@inria.fr
