Makefile
author Mario de Sousa <msousa@fe.up.pt>
Thu, 14 Apr 2011 18:12:59 +0100
changeset 287 9df7fcb9bde5
parent 279 c0453b7f99df
child 335 96d2efda3d8d
permissions -rwxr-xr-x
Added tracking of order by which tokens are processed by lexical analyser.
This helps in correctly formating error messages when constructs begin in one file, and end in another.
279
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
     1
# matiec - a compiler for the programming languages defined in IEC 61131-3
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
     2
#
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
     3
# Copyright (C) 2003-2011  Mario de Sousa (msousa@fe.up.pt)
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
     4
# Copyright (C) 2007-2011  Laurent Bessard and Edouard Tisserant
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
     5
#
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
     6
# This program is free software: you can redistribute it and/or modify
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
     7
# it under the terms of the GNU General Public License as published by
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
     8
# the Free Software Foundation, either version 3 of the License, or
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
     9
# (at your option) any later version.
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
    10
#
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
    11
# This program is distributed in the hope that it will be useful,
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
    12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
    13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
    14
# GNU General Public License for more details.
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
    15
#
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
    16
# You should have received a copy of the GNU General Public License
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
    17
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 268
diff changeset
    18
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    19
# include the system specific Makefile
40
873a5b60a7ea Fixed -I library include path behavior + removed old lib implementation + added generated lib func names to stage 1_2 + added Makefile.Linux
etisserant
parents: 15
diff changeset
    20
include Makefile.$(shell uname)
873a5b60a7ea Fixed -I library include path behavior + removed old lib implementation + added generated lib func names to stage 1_2 + added Makefile.Linux
etisserant
parents: 15
diff changeset
    21
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    22
default: all
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    23
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents: 40
diff changeset
    24
all: iec2c iec2iec
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    25
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    26
install: all
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    27
	install -d $(INSTALL_PREDIR)/$(INSTALL_BINDIR)/ 
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    28
	install -d $(INSTALL_PREDIR)/$(IECLIBDIR)/
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents: 40
diff changeset
    29
	install iec2c    $(INSTALL_PREDIR)/$(INSTALL_BINDIR)/
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    30
	install lib/*.txt $(INSTALL_PREDIR)/$(IECLIBDIR)/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    31
#	install iec2iec   $(INSTALL_PREDIR)/$(INSTALL_BINDIR)/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    32
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    33
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    34
uninstall:
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents: 40
diff changeset
    35
	rm -f $(INSTALL_PREDIR)/$(INSTALL_BINDIR)/iec2c
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    36
	rm -f $(INSTALL_PREDIR)/$(INSTALL_BINDIR)/iec2iec
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    37
	for ff in `cd lib; ls *.txt; cd ..` do echo $$ff done
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    38
#	for ff in `cd lib; ls *.txt; cd ..` do rm -f $(INSTALL_PREDIR)/$(IECLIBDIR)/$$ff done
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    39
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    40
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    41
clean:
159
1e4eb0d48385 Try to clean Makefile. Not a real success.
etisserant
parents: 70
diff changeset
    42
	-rm -f iec2iec iec2c *.o absyntax/*.o
1e4eb0d48385 Try to clean Makefile. Not a real success.
etisserant
parents: 70
diff changeset
    43
	echo > Makefile.depend
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    44
# make something everywhere (ie, in all Makefiles that have that target)
268
1eba01e3fb70 Adding Makefile for Darwin (thanks go to Manuele)
Mario de Sousa <msousa@fe.up.pt>
parents: 243
diff changeset
    45
	find . -depth -mindepth 2 -maxdepth 2 -name Makefile | sed 's/Makefile//g' | xargs -I {} make -C{} clean
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    46
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    47
CXXFLAGS += -I.
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    48
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    49
LIBS  = absyntax/absyntax.o absyntax/visitor.o
181
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    50
LIBS += stage1_2/stage1_2.o stage1_2/iec.y.o stage1_2/iec.flex.o
202
da1a8186f86f Initial (very rough) version of semantic checker (stage3)
Catarina Boucinha <ccb@fe.up.pt>
parents: 181
diff changeset
    51
LIBS += stage3/stage3.o
da1a8186f86f Initial (very rough) version of semantic checker (stage3)
Catarina Boucinha <ccb@fe.up.pt>
parents: 181
diff changeset
    52
LIBS += stage3/visit_expression_type.o
181
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    53
LIBS += absyntax_utils/absyntax_utils.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    54
LIBS += absyntax_utils/search_expression_type.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    55
LIBS += absyntax_utils/decompose_var_instance_name.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    56
LIBS += absyntax_utils/function_call_iterator.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    57
LIBS += absyntax_utils/function_call_param_iterator.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    58
LIBS += absyntax_utils/function_param_iterator.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    59
LIBS += absyntax_utils/search_base_type.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    60
LIBS += absyntax_utils/search_constant_type.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    61
LIBS += absyntax_utils/search_fb_instance_decl.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    62
LIBS += absyntax_utils/search_fb_typedecl.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    63
LIBS += absyntax_utils/search_varfb_instance_type.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    64
LIBS += absyntax_utils/search_var_instance_decl.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    65
LIBS += absyntax_utils/spec_init_separator.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    66
LIBS += absyntax_utils/type_initial_value.o
202
da1a8186f86f Initial (very rough) version of semantic checker (stage3)
Catarina Boucinha <ccb@fe.up.pt>
parents: 181
diff changeset
    67
LIBS += absyntax_utils/add_en_eno_param_decl.o
da1a8186f86f Initial (very rough) version of semantic checker (stage3)
Catarina Boucinha <ccb@fe.up.pt>
parents: 181
diff changeset
    68
LIBS += absyntax_utils/get_sizeof_datatype.o
181
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    69
LIBS += absyntax_utils/get_function_type.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    70
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    71
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    72
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents: 40
diff changeset
    73
iec2c: main.o stage4/generate_c/generate_c.o stage4/stage4.o $(LIBS)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents: 40
diff changeset
    74
	$(CXX) -o iec2c main.o stage4/stage4.o stage4/generate_c/generate_c.o $(LIBS)
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    75
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    76
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    77
iec2iec: main.o stage4/generate_iec/generate_iec.o stage4/stage4.o $(LIBS)
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    78
	$(CXX) -o iec2iec main.o stage4/stage4.o stage4/generate_iec/generate_iec.o $(LIBS)
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    79
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    80
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    81
#how to make things in subdirectories etc
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    82
../% /% absyntax/% stage1_2/% stage3/% stage4/% util/%:
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    83
	$(MAKE) -C $(@D) $(@F)
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    84
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    85
Makefile.depend depend:
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    86
	$(CXX) -MM -MG -I. *.cc \
243
bdfee1f5be9e Updated makefiles for cygwin build with no perl
Lolitech
parents: 202
diff changeset
    87
	  | sed 's/:/ Makefile.depend:/' > Makefile.depend
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    88
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    89
include Makefile.depend
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    90
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    91
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    92