source: trunk/idl-compiler/Makefile

Last change on this file was 292, checked in by cinc, 19 years ago

Created C file emitter. Some fixes.

File size: 2.2 KB
Line 
1#
2# Makefile for the NOM IDL compiler.
3#
4include ./../make.inc
5
6
7OBJDIR = ./../../../o
8BINDIR = ./../../../bin
9DOCDIR = ./../../../docs
10CDIR = ./c
11
12
13PARSERDIR = ./parser_c
14HEMITTERDIR = ./h-emitter_c
15IHEMITTERDIR = ./ih-emitter_c
16CEMITTERDIR = ./c-emitter_c
17
18CFLAGS = -Zmt -Zcrtdll -D__OS2__ -D__ST_MT_ERRNO__ -c -Wall
19
20CLASSINC = ./class_h
21INCDIR = ./include
22
23INC = ./include -I $(NOMPATH)/include
24
25
26# Define objects to build
27
28
29PGOBJECTS = $(OBJDIR)/nom-idl-compiler.o \
30 $(OBJDIR)/token.o \
31 $(OBJDIR)/util.o \
32 $(OBJDIR)/emitter.o \
33 $(OBJDIR)/open_outfile.o \
34 $(OBJDIR)/printdata.o \
35 $(OBJDIR)/typespec_parser.o \
36 $(OBJDIR)/method_parser.o \
37 $(OBJDIR)/instancevar_parser.o \
38 $(OBJDIR)/interface_parser.o \
39 $(OBJDIR)/classversion_parser.o \
40 $(OBJDIR)/override_parser.o \
41 $(OBJDIR)/hash_parser.o \
42 $(OBJDIR)/lineinfo_parser.o \
43 $(OBJDIR)/metaclass_parser.o \
44 $(OBJDIR)/filestem_parser.o \
45 $(OBJDIR)/h_file_emitter.o \
46 $(OBJDIR)/ih_file_emitter.o \
47 $(OBJDIR)/c_file_emitter.o
48
49
50#$(CLASSINC)/wpnativetypes.ih \
51
52
53.PRECIOUS: $(CDIR)/%.c
54
55.PHONY: dox
56
57all: $(BINDIR)/nom-idl-compiler.exe
58
59$(BINDIR)/nom-idl-compiler.exe: $(OBJDIR)/o.dep $(PGOBJECTS)
60 @echo "[33;1;mLinking "$@"...[0;m"
61 $(CC) -o $@ $(PGOBJECTS) $(LIBS)
62 @echo "[32;1;mDone linking "$@"...[0;m"
63
64
65###################################
66#
67# Rules for compiling
68#
69###################################
70
71
72$(OBJDIR)/%.o: $(CDIR)/%.c $(INCDIR)/parser.h
73 $(CC) -I $(INC) $(CFLAGS) -o$@ $<
74
75$(OBJDIR)/%.o: $(PARSERDIR)/%.c $(INCDIR)/parser.h
76 $(CC) -I $(INC) $(CFLAGS) -o$@ $<
77
78$(OBJDIR)/%.o: $(HEMITTERDIR)/%.c $(INCDIR)/parser.h
79 $(CC) -I $(INC) $(CFLAGS) -o$@ $<
80
81$(OBJDIR)/%.o: $(IHEMITTERDIR)/%.c $(INCDIR)/parser.h
82 $(CC) -I $(INC) $(CFLAGS) -o$@ $<
83
84$(OBJDIR)/%.o: $(CEMITTERDIR)/%.c $(INCDIR)/parser.h
85 $(CC) -I $(INC) $(CFLAGS) -o$@ $<
86
87# Create the directories for temp files
88$(OBJDIR)/o.dep:
89 mkdir -p $(OBJDIR)
90 echo > $(OBJDIR)/o.dep
91 mkdir -p $(BINDIR)
92 mkdir -p $(DOCDIR)
93
94dox:
95 cd ./dox && doxygen desktop.dox
96
97clean:
98 -cd $(OBJDIR) && rm -f *.o
99 -cd $(BINDIR) && rm -f *.dll
Note: See TracBrowser for help on using the repository browser.