Makefile
author laurent
Fri, 02 Sep 2011 18:15:55 +0200
changeset 347 44ff2a6fcadc
parent 335 96d2efda3d8d
permissions -rwxr-xr-x
Fix case statement in ST, adding support for enumerated types
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)
335
96d2efda3d8d Fix makefiles when not using make as make tool
laurent
parents: 279
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
347
44ff2a6fcadc Fix case statement in ST, adding support for enumerated types
laurent
parents: 335
diff changeset
    56
LIBS += absyntax_utils/case_element_iterator.o
181
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    57
LIBS += absyntax_utils/function_call_iterator.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    58
LIBS += absyntax_utils/function_call_param_iterator.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    59
LIBS += absyntax_utils/function_param_iterator.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    60
LIBS += absyntax_utils/search_base_type.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    61
LIBS += absyntax_utils/search_constant_type.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    62
LIBS += absyntax_utils/search_fb_instance_decl.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    63
LIBS += absyntax_utils/search_fb_typedecl.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    64
LIBS += absyntax_utils/search_varfb_instance_type.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    65
LIBS += absyntax_utils/search_var_instance_decl.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    66
LIBS += absyntax_utils/spec_init_separator.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    67
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
    68
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
    69
LIBS += absyntax_utils/get_sizeof_datatype.o
181
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    70
LIBS += absyntax_utils/get_function_type.o
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    71
38d6eb056260 Moving absyntax utility files out from stage4/generate_c
mario
parents: 178
diff changeset
    72
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    73
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents: 40
diff changeset
    74
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
    75
	$(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
    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
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    78
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
    79
	$(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
    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
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    82
#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
    83
../% /% 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
    84
	$(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
    85
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    86
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
    87
	$(CXX) -MM -MG -I. *.cc \
243
bdfee1f5be9e Updated makefiles for cygwin build with no perl
Lolitech
parents: 202
diff changeset
    88
	  | 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
    89
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    90
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
    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
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    93