1#BEWARE: this Makefile was designed for GNU make and uses some specific syntax
2#        that can be incompatible with other make tools
3
4CFLAGS   =-Isrc -Iinclude -O2 -Wall -D_WIN32_WINNT=0x0500 -Wunused-parameter -I$(INCDIR) -mms-bitfields -DSUPPORT_ACCESSIBILITY_CHECKS -DSUPPORT_ASIAN_ENCODINGS -DSUPPORT_UTF16_ENCODINGS
5LIBS     =-L$(LIBDIR)
6OBJS     =src/charsets.o src/iconvtc.o src/win32tc.o src/access.o src/attrs.o src/istack.o src/parser.o src/tags.o src/entities.o src/lexer.o src/pprint.o src/clean.o src/localize.o src/config.o src/alloc.o src/attrask.o src/attrdict.o src/attrget.o src/buffio.o src/fileio.o src/streamio.o src/tagask.o src/tmbstr.o src/utf8.o src/tidyplib.o src/mappedio.o
7VEROBJ   =dll_version_info.o
8EXE1     =tidyp.exe
9EXE1OBJS =src/tidyp.o
10
11RANLIB  = ranlib
12CC      = gcc
13STRIP   = strip
14AR      = ar
15ARFLAGS = csr
16PERL    = perl
17
18ifeq ($(NOPERL), 1)
19  CP     = cp
20  MV     = mv
21  RM_F   = rm -f
22  RM_RF  = rm -rf
23  MKPATH = mkdir -p
24else
25  CP     = $(PERL) -MExtUtils::Command -e "cp" --
26  MV     = $(PERL) -MExtUtils::Command -e "mv" --
27  RM_F   = $(PERL) -MExtUtils::Command -e "rm_f" --
28  RM_RF  = $(PERL) -MExtUtils::Command -e "rm_rf" --
29  MKPATH = $(PERL) -MExtUtils::Command -e "mkpath" --
30endif
31
32PREFIX =./_output_
33BINDIR =$(PREFIX)/bin
34INCDIR =$(PREFIX)/include
35LIBDIR =$(PREFIX)/lib
36STATIC_LIB=libtidyp.a
37TARGETS = $(STATIC_LIB) $(SHARED_LIB) $(EXE1OBJS) $(EXE1)
38
39all: $(TARGETS)
40
41clean:
42	$(RM_F) $(OBJS) $(TARGETS)
43
44$(STATIC_LIB): $(OBJS)
45	$(AR) $(ARFLAGS) $@ $^
46	$(RANLIB) $@
47
48$(EXE1): $(EXE1OBJS) $(STATIC_LIB)
49	$(CC) -o $@ $^
50
51%.o : %.c ; $(CC) $(CFLAGS) -c $< -o $@
52
53install: all
54	$(MKPATH) $(BINDIR)
55	$(MKPATH) $(LIBDIR)
56	$(MKPATH) $(INCDIR)/tidyp
57	$(STRIP) -S $(EXE1)
58	$(CP) $(STATIC_LIB) "$(LIBDIR)"
59	$(CP) $(EXE1) "$(BINDIR)"
60	$(CP) include/buffio.h include/platform.h include/tidyp.h include/tidypenum.h "$(INCDIR)/tidyp"
61