Skip to content

Buildsystem improvements#31

Open
ismaell wants to merge 8 commits intoinflex:masterfrom
ismaell:buildsystem-improvements
Open

Buildsystem improvements#31
ismaell wants to merge 8 commits intoinflex:masterfrom
ismaell:buildsystem-improvements

Conversation

@ismaell
Copy link

@ismaell ismaell commented Mar 17, 2026

This intends to align the buildsystem with more standard practices and enable better ergonomics for packaging.

  • Automake-compatible rules
  • Respect CFLAGS
  • Improved build and installation
  • Build configuration persistence across invocations
  • Conditionally install shared library

ismaell added 8 commits March 17, 2026 10:32
- Full library file name in ${solib}.
- Target-specific LDFLAGS in ${$@-LDFLAGS}.
- Sources in ${$@-objs}.
- Added ${libdir}, and rules: install-static and install-shared.
- Two-tiered variables so the user can override without affecting
  mandatory flags. E.g. CFLAGS -> CFLAGS-y
- Merge all and default
- No .o should be a dependency of a phony target
- Simplify sco
- Mark phony targets
- Split clean target
- MIMEH*: Split properly into phony and real target, add cleaning
This way, changing a configuration variable is persistent; no need to
specify them every time.

The .config file is included twice so that only user-specified variables
get updated.

This is compatible with GNU make 4.4+ and NetBSD make and derivatives.

Also added a distclean target to clean the .config file.
The use-solib variable controls which one is used:
- use-solib=y           => dynamically linked libripmime
- use-solib=n (default) => traditional build

Added RPATH to support installing to non-standard directories, and -fPIC
so the code is relocatable.

I see no need to preserve building against the .o files directly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant