---
name: "jmkmf"
section: "1"
platform: "linux"
package: "dist"
version: "1:3.5-236-1.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/jmkmf"
---

# jmkmf(1)

runs jmake with the correct options

## NAME

jmkmf - runs jmake with the correct options

## SYNOPSIS

**jmkmf** \[ *top-level dir* \[ *current dir* \] \]

## DESCRIPTION

*Jmkmf* is a wrapper which calls *jmake* with the correct options, defining the symbols TOPDIR (location of the top-level directory) and CURDIR (current directory). The generated *Makefile.SH* is then ran through */bin/sh* to produce a *Makefile.*

*Jmkmf* is useful when you generate a makefile for the first time.

When ran without arguments, *jmkmf* will scan the directories upwards, looking for a .package file marking the top of your sources.  It will then derive the top-level directory and the name of the current directory by itself.

Once you have a *Makefile.SH* generated by *jmake,* and have run Configure already, you can use *make Makefile.SH* to build the Makefile.SH again and *make Makefile* to run the Makefile.SH through */bin/sh.* To use the recursive commands, you have to append an 's' at the end of the name as in *make Makefiles.SH* and *make Makefiles.*

## AUTHOR

Raphael Manfredi \<Raphael.Manfredi@pobox.com\>

## FILES

- Jmakefile

  High level description of makefile

- The file marking the top of your package tree

  ## SEE ALSO

[jmake(1)](/jmake/1.md), [packinit(1)](/packinit/1.md).
