Compare commits

...

2 Commits

Author SHA1 Message Date
93f11efcc1 Add content to README.md 2024-12-23 15:55:44 +01:00
1f64049823 Fix name 2024-12-23 15:55:35 +01:00
2 changed files with 48 additions and 2 deletions

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 bob
Copyright (c) 2025 Bob Polis
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

View File

@ -1,3 +1,49 @@
# proj_tpl
Generic project templates for tools, filters, libraries in C++.
## Installation
Type `make` to install the `mkcppproj` tool and its man page.
## Overview
With `mkcppproj`, you can create a C++ project for a tool or a library.
The tool can be:
- a simple experiment, to test some idea;
- a more elaborate tool, meant to be distributed;
- a UNIX filter, which processes input files line by line, or reads from
standard input when there are no input files;
- a library, where both a static and a dynamic library will be built.
All of these can optionally:
- use a precompiled header for the C++ Standard Library;
- implement a plugin architecture, where building and installing plugins is
automatically supported.
At the center is a `Makefile`, which should not be altered. This `Makefile` can
build and install any of these projects. All project-specific additions should
be put in the mandatory `premake.make` (which is included at the start of the
Makefile), and in an optional `postmake.make` (which is included at the end of
the Makefile).
The `premake.make` typically defines some Make variables, whereas the
`postmake.make` typically contains extra Make targets.
The `premake.make` is mandatory, because it defines the name of the tool or
library, and its version. This is also where you declare external dependencies.
Available Make targets are:
- `make` will build the tool or library;
- `sudo make install` will install it, and all of its accompanying files;
- `make clean` will remove compiled object files, but will keep a previously
built tool or library, and the precompiled header;
- `make dist-clean` will bring the project to a pristine state.
- `sudo make uninstall` will remove all installed files.
## Documentation
`man mkcppproj`