mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-11-21 03:14:19 +08:00
Make buildsystem respect GNU conventions
* CPPFLAGS is a user variable and should be respected when compiling .c files. Think of -D_FORTIFY_SOURCE=2. * Pass ALL_CFLAGS when linking too. This is recommended for certain edge cases (-flto) * Use DESTDIR instead of INSTALLROOT for staging dir Every other build system (Automake, CMake, Meson) uses DESTDIR. This integrates better into distro and other build systems that have standard hooks for DESTDIR. * $(MAKE) -C <dir> is better than cd'ing into a <dir> * Use Autoconf's ${docdir} and ${htmldir} for installing the documentation. This makes handling documentation easier and respects user choice. Signed-off-by: David Seifert <soap@gentoo.org> Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
parent
6e53180085
commit
a4f6ca5a33
41
Makefile.in
41
Makefile.in
@ -20,6 +20,7 @@ datarootdir = @datarootdir@
|
||||
|
||||
CC = @CC@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
BUILD_CFLAGS = $(CFLAGS) @DEFS@
|
||||
INTERNAL_CFLAGS = -I$(srcdir) -I$(objdir) \
|
||||
-I$(srcdir)/include -I$(objdir)/include \
|
||||
@ -72,13 +73,13 @@ endif
|
||||
.PHONY: manpages nsis
|
||||
|
||||
.c.$(O):
|
||||
$(CC) -c $(ALL_CFLAGS) -o $@ $<
|
||||
$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -o $@ $<
|
||||
|
||||
.c.s:
|
||||
$(CC) -S $(ALL_CFLAGS) -o $@ $<
|
||||
$(CC) -S $(CPPFLAGS) $(ALL_CFLAGS) -o $@ $<
|
||||
|
||||
.c.i:
|
||||
$(CC) -E $(ALL_CFLAGS) -o $@ $<
|
||||
$(CC) -E $(CPPFLAGS) $(ALL_CFLAGS) -o $@ $<
|
||||
|
||||
.txt.xml:
|
||||
$(ASCIIDOC) -b docbook -d manpage -o $@ $<
|
||||
@ -88,7 +89,7 @@ endif
|
||||
|
||||
# This rule is only used for rdoff, to allow common rules
|
||||
.$(O)$(X):
|
||||
$(CC) $(LDFLAGS) -o $@ $< $(RDFLIB) $(NASMLIB) $(LIBS)
|
||||
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $< $(RDFLIB) $(NASMLIB) $(LIBS)
|
||||
|
||||
#-- Begin File Lists --#
|
||||
NASM = asm/nasm.$(O)
|
||||
@ -152,10 +153,10 @@ $(NASMLIB): $(LIBOBJ)
|
||||
$(RANLIB) $(NASMLIB)
|
||||
|
||||
nasm$(X): $(NASM) $(NASMLIB)
|
||||
$(CC) $(LDFLAGS) -o nasm$(X) $(NASM) $(NASMLIB) $(LIBS)
|
||||
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o nasm$(X) $(NASM) $(NASMLIB) $(LIBS)
|
||||
|
||||
ndisasm$(X): $(NDISASM) $(NASMLIB)
|
||||
$(CC) $(LDFLAGS) -o ndisasm$(X) $(NDISASM) $(NASMLIB) $(LIBS)
|
||||
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o ndisasm$(X) $(NDISASM) $(NASMLIB) $(LIBS)
|
||||
|
||||
#-- Begin Generated File Rules --#
|
||||
|
||||
@ -335,12 +336,12 @@ nsis: nsis/nasm.nsi nsis/arch.nsh nsis/version.nsh
|
||||
manpages: nasm.1 ndisasm.1
|
||||
|
||||
install: nasm$(X) ndisasm$(X)
|
||||
$(MKDIR) -p $(INSTALLROOT)$(bindir)
|
||||
$(INSTALL_PROGRAM) nasm$(X) $(INSTALLROOT)$(bindir)/nasm$(X)
|
||||
$(INSTALL_PROGRAM) ndisasm$(X) $(INSTALLROOT)$(bindir)/ndisasm$(X)
|
||||
$(MKDIR) -p $(INSTALLROOT)$(mandir)/man1
|
||||
$(INSTALL_DATA) $(srcdir)/nasm.1 $(INSTALLROOT)$(mandir)/man1/nasm.1
|
||||
$(INSTALL_DATA) $(srcdir)/ndisasm.1 $(INSTALLROOT)$(mandir)/man1/ndisasm.1
|
||||
$(MKDIR) -p $(DESTDIR)$(bindir)
|
||||
$(INSTALL_PROGRAM) nasm$(X) $(DESTDIR)$(bindir)/nasm$(X)
|
||||
$(INSTALL_PROGRAM) ndisasm$(X) $(DESTDIR)$(bindir)/ndisasm$(X)
|
||||
$(MKDIR) -p $(DESTDIR)$(mandir)/man1
|
||||
$(INSTALL_DATA) $(srcdir)/nasm.1 $(DESTDIR)$(mandir)/man1/nasm.1
|
||||
$(INSTALL_DATA) $(srcdir)/ndisasm.1 $(DESTDIR)$(mandir)/man1/ndisasm.1
|
||||
|
||||
clean:
|
||||
for d in . $(SUBDIRS) $(XSUBDIRS); do \
|
||||
@ -364,7 +365,7 @@ distclean: clean
|
||||
|
||||
cleaner: clean
|
||||
$(RM_F) $(PERLREQ) *.1 nasm.spec
|
||||
cd doc && $(MAKE) clean
|
||||
$(MAKE) -C doc clean
|
||||
|
||||
spotless: distclean cleaner
|
||||
$(RM_F) doc/Makefile
|
||||
@ -386,23 +387,23 @@ cscope:
|
||||
cscope -b -f cscope.out
|
||||
|
||||
rdf_install install_rdf install_rdoff:
|
||||
$(MKDIR) -p $(INSTALLROOT)$(bindir)
|
||||
$(MKDIR) -p $(DESTDIR)$(bindir)
|
||||
for f in $(RDFPROGS); do \
|
||||
$(INSTALL_PROGRAM) "$$f" '$(INSTALLROOT)$(bindir)'/ ; \
|
||||
$(INSTALL_PROGRAM) "$$f" '$(DESTDIR)$(bindir)'/ ; \
|
||||
done
|
||||
cd '$(INSTALLROOT)$(bindir)' && \
|
||||
cd '$(DESTDIR)$(bindir)' && \
|
||||
for f in $(RDF2BINLINKS); do \
|
||||
bn=`basename "$$f"` && $(RM_F) "$$bn" && \
|
||||
$(LN_S) rdf2bin$(X) "$$bn" ; \
|
||||
done
|
||||
$(MKDIR) -p $(INSTALLROOT)$(mandir)/man1
|
||||
$(INSTALL_DATA) $(srcdir)/rdoff/*.1 $(INSTALLROOT)$(mandir)/man1/
|
||||
$(MKDIR) -p $(DESTDIR)$(mandir)/man1
|
||||
$(INSTALL_DATA) $(srcdir)/rdoff/*.1 $(DESTDIR)$(mandir)/man1/
|
||||
|
||||
doc:
|
||||
cd doc && $(MAKE) all
|
||||
$(MAKE) -C doc all
|
||||
|
||||
doc_install install_doc:
|
||||
cd doc && $(MAKE) install
|
||||
$(MAKE) -C doc install
|
||||
|
||||
everything: all manpages doc rdf
|
||||
|
||||
|
@ -9,7 +9,8 @@ prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
bindir = @bindir@
|
||||
mandir = @mandir@
|
||||
docdir = $(prefix)/doc/nasm
|
||||
docdir = @docdir@
|
||||
htmldir = @htmldir@
|
||||
infodir = @infodir@
|
||||
datarootdir = @datarootdir@
|
||||
|
||||
@ -21,6 +22,7 @@ PERL = perl -I$(srcdir)
|
||||
|
||||
PDFOPT = @PDFOPT@
|
||||
|
||||
MKDIR = mkdir
|
||||
RM_F = rm -f
|
||||
RM_RF = rm -rf
|
||||
CP_F = cp -f
|
||||
@ -41,7 +43,7 @@ inslist.src: inslist.pl ../x86/insns.dat
|
||||
|
||||
.PHONY: html
|
||||
html: $(HTMLAUX)
|
||||
mkdir -p html
|
||||
$(MKDIR) -p html
|
||||
for f in $(HTMLAUX); do $(CP_UF) "$(srcdir)/$$f" html/; done
|
||||
$(MAKE) html/nasmdoc0.html
|
||||
|
||||
@ -81,6 +83,7 @@ spotless: clean
|
||||
-$(RM_F) *.hlp nasmdoc.txt *.inf *.pdf *.dvi
|
||||
|
||||
install: all
|
||||
mkdir -p $(INSTALLROOT)$(docdir)/html
|
||||
$(INSTALL_DATA) html/* $(INSTALLROOT)$(docdir)/html
|
||||
$(INSTALL_DATA) nasmdoc.pdf nasmdoc.txt $(INSTALLROOT)$(docdir)
|
||||
$(MKDIR) -p $(DESTDIR)$(htmldir)
|
||||
$(INSTALL_DATA) html/* $(DESTDIR)$(htmldir)
|
||||
$(MKDIR) -p $(DESTDIR)$(docdir)
|
||||
$(INSTALL_DATA) nasmdoc.pdf nasmdoc.txt $(DESTDIR)$(docdir)
|
||||
|
Loading…
Reference in New Issue
Block a user