mirror of
https://github.com/steveicarus/iverilog.git
synced 2026-09-05 00:51:28 +02:00
The MinGW system() implementation appears to return the straight return value instead of the waitpid() like result that more normal systems return. Because of this just return the system() result without processing for MinGW compilations. Older version of the MinGW runtime (pre 3.14) just used the underlying vsnprintf(). Which has some problems. The 3.14 version has some nice improvements, but it has a sever bug when processing "%*.*f", -1, -1, <some_real_value>. Because of this we need to use the underlying version without the enhancements for now. snprintf prints %p differently than the other printf routines so use _snprintf to get consistent results. Only build the PDF files if both man and ps2pdf exist. MinGW does not know about the z modifier for %d, %u, etc. Add some missing Makefile check targets.
117 lines
3.2 KiB
Makefile
117 lines
3.2 KiB
Makefile
#
|
|
# This source code is free software; you can redistribute it
|
|
# and/or modify it in source code form under the terms of the GNU
|
|
# Library General Public License as published by the Free Software
|
|
# Foundation; either version 2 of the License, or (at your option)
|
|
# any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Library General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Library General Public
|
|
# License along with this program; if not, write to the Free
|
|
# Software Foundation, Inc.,
|
|
# 59 Temple Place - Suite 330
|
|
# Boston, MA 02111-1307, USA
|
|
#
|
|
SHELL = /bin/sh
|
|
|
|
VERSION = 0.9.devel
|
|
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
srcdir = @srcdir@
|
|
datarootdir = @datarootdir@
|
|
|
|
VPATH = $(srcdir)
|
|
|
|
bindir = $(exec_prefix)/bin
|
|
libdir = $(exec_prefix)/lib
|
|
includedir = $(prefix)/include
|
|
mandir = @mandir@
|
|
|
|
dllib=@DLLIB@
|
|
|
|
CC = @CC@
|
|
INSTALL = @INSTALL@
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
MAN = @MAN@
|
|
PS2PDF = @PS2PDF@
|
|
|
|
CPPFLAGS = @ident_support@ -I. -I.. -I$(srcdir)/.. -I$(srcdir) -DVERSION='"$(VERSION)"' @CPPFLAGS@ @DEFS@
|
|
CFLAGS = -Wall @CFLAGS@
|
|
LDFLAGS = @LDFLAGS@
|
|
|
|
all: iverilog@EXEEXT@
|
|
|
|
clean:
|
|
rm -f *.o lexor.c parse.c parse.h parse.output
|
|
rm -f cflexor.c cfparse.c cfparse.h cfparse.output
|
|
rm -f iverilog@EXEEXT@ iverilog.pdf iverilog.ps
|
|
|
|
distclean: clean
|
|
rm -f Makefile
|
|
|
|
O = main.o substit.o cflexor.o cfparse.o
|
|
|
|
iverilog@EXEEXT@: $O
|
|
$(CC) $(LDFLAGS) $O -o iverilog@EXEEXT@ @EXTRALIBS@
|
|
|
|
cflexor.c: cflexor.lex
|
|
flex -s -Pcf -ocflexor.c $(srcdir)/cflexor.lex
|
|
|
|
cfparse.h cfparse.c: cfparse.y
|
|
bison --verbose -t -d -o cfparse.c --name-prefix=cf $(srcdir)/cfparse.y
|
|
|
|
|
|
main.o: main.c globals.h ../version.h
|
|
$(CC) $(CPPFLAGS) $(CFLAGS) -c -DIVL_ROOT='"@libdir@/ivl"' -DIVL_INC='"@includedir@"' -DIVL_LIB='"@libdir@"' -DDLLIB='"@DLLIB@"' $(srcdir)/main.c
|
|
|
|
build_string.o: build_string.c globals.h
|
|
cflexor.o: cflexor.c cfparse.h cfparse_misc.h globals.h
|
|
cfparse.o: cfparse.c globals.h cfparse_misc.h
|
|
|
|
iverilog.ps: $(srcdir)/iverilog.man
|
|
$(MAN) -t $(srcdir)/iverilog.man > iverilog.ps
|
|
|
|
iverilog.pdf: iverilog.ps
|
|
$(PS2PDF) iverilog.ps iverilog.pdf
|
|
|
|
ifeq (@MINGW32@,yes)
|
|
ifeq ($(MAN),none)
|
|
INSTALL_DOC = $(mandir)/man1/iverilog.1
|
|
else
|
|
ifeq ($(PS2PDF),none)
|
|
INSTALL_DOC = $(mandir)/man1/iverilog.1
|
|
else
|
|
INSTALL_DOC = $(prefix)/iverilog.pdf $(mandir)/man1/iverilog.1
|
|
all: iverilog.pdf
|
|
endif
|
|
endif
|
|
INSTALL_DOCDIR = $(mandir)/man1
|
|
else
|
|
INSTALL_DOC = $(mandir)/man1/iverilog.1
|
|
INSTALL_DOCDIR = $(mandir)/man1
|
|
endif
|
|
|
|
install: all installdirs $(bindir)/iverilog@EXEEXT@ $(INSTALL_DOC)
|
|
|
|
$(bindir)/iverilog@EXEEXT@: ./iverilog@EXEEXT@
|
|
$(INSTALL_PROGRAM) ./iverilog@EXEEXT@ $(bindir)/iverilog@EXEEXT@
|
|
|
|
$(mandir)/man1/iverilog.1: $(srcdir)/iverilog.man
|
|
$(INSTALL_DATA) $(srcdir)/iverilog.man $(mandir)/man1/iverilog.1
|
|
|
|
$(prefix)/iverilog.pdf: iverilog.pdf
|
|
$(INSTALL_DATA) iverilog.pdf $(prefix)/iverilog.pdf
|
|
|
|
installdirs: ../mkinstalldirs
|
|
$(srcdir)/../mkinstalldirs $(bindir) $(INSTALL_DOCDIR)
|
|
|
|
uninstall:
|
|
rm -f $(bindir)/iverilog@EXEEXT@
|
|
rm -f $(mandir)/man1/iverilog.1 $(prefix)/iverilog.pdf
|