1############# 2### Targets # 3############# 4 5DEST = . 6 7LIBRARY = libout.a 8 9PROGRAM = a.out 10 11TARGET = $(PROGRAM) 12 13# PRESET VARIABLES 14################################# 15### Compilers, Programs and Flags 16################################# 17### C Compiler 18CC = $(Ccompiler) 19CFLAGS = $(TOPCFLAGS) -I$(IncludeDir) -I../Kernel -I../Database 20 21### C++ Compiler 22CCC = xlC 23CCFLAGS = 24 25### Fortran Compiler 26FC = xlf 27FFLAGS = -qlanglvl=90ext 28 29### COBOL Compiler 30COB = cob2 31COBFLAGS = 32 33### PL/I Compiler 34PLI = pli 35PLIFLAGS = -qLANGLVL=SAA -qNOOPTIMIZE -qNOCOMPILE=S -qNOSEMANTIC=S -qNOSYNTAX=S 36 37### CICS/6000 Translator 38CICSTRAN = cicstran 39CICSTRANOPTIONS = 40 41### DB2/6000 Precompiler 42DB2PREP = db2 prep 43DB2PREPOPTIONS = bindfile package 44 45### Linker/Loader 46LD = cc 47LDFLAGS = 48 49### Shell Command 50SHELL = /bin/sh 51 52### Installation Program 53INSTALL = cp 54 55### Print command 56PRINT = pr 57 58### mkmf program 59MKMF = /usr/lpp/sde/bin/mkmf 60 61SUFFIX = .i: 62 63################################################################### 64### Additional rules for make. These rules are in addition to the # 65### default rules for the aix make command specified in the # 66### /usr/ccs/lib/aix.mk configuration file. For more information # 67### refer to the man page for make. # 68################################################################### 69 70### Additional make suffixes 71.SUFFIXES: .F .F~ .f90 .f90~ .cc .cc~ .cpp .cpp~ .cxx .cxx~ .ccp .ccp~ .sqb .sqb~ .cbl .cbl~ .pli .pli~ .H .H~ .hpp .hpp~ .hxx .hxx~ .cpy .cpy~ .inc .inc~ 72 73# SINGLE SUFFIX RULES 74.cc: 75 $(CCC) $(CCFLAGS) $(LDFLAGS) $< -o $@ 76.cc~: 77 $(GET) $(GFLAGS) -p $< > $*.cc 78 $(CCC) $(CCFLAGS) $(LDFLAGS) $*.cc -o $* 79 -rm -f $*.cc 80.cpp: 81 $(CCC) $(CCFLAGS) $(LDFLAGS) $< -o $@ 82.cpp~: 83 $(GET) $(GFLAGS) -p $< > $*.cpp 84 $(CCC) $(CCFLAGS) $(LDFLAGS) $*.cpp -o $* 85 -rm -f $*.cpp 86.cxx: 87 $(CCC) $(CCFLAGS) $(LDFLAGS) $< -o $@ 88.cxx~: 89 $(GET) $(GFLAGS) -p $< > $*.cxx 90 $(CCC) $(CCFLAGS) $(LDFLAGS) $*.cxx -o $* 91 -rm -f $*.cxx 92.F: 93 $(FC) $(FFLAGS) $(LDFLAGS) $< -o $@ 94.F~: 95 $(GET) $(GFLAGS) -p $< > $*.F 96 $(FC) $(FFLAGS) $(LDFLAGS) $*.F -o $* 97 -rm -f $*.F 98 99.f90: 100 $(FC) $(FFLAGS) $(LDFLAGS) $< -o $@ 101.f90~: 102 $(GET) $(GFLAGS) -p $< > $*.f90 103 $(FC) $(FFLAGS) $(LDFLAGS) $*.f90 -o $* 104 -rm -f $*.f90 105 106.cbl: 107 $(COB) $(COBFLAGS) $(LDFLAGS) $< -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null 108.cbl~: 109 $(GET) $(GFLAGS) -p $< > $*.cbl 110 $(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $* -qadata -qexit=adexit=iwzrmgux:: > /dev/null 111 -rm -f $*.cbl 112 113.pli: 114 $(PLI) $(PLIFLAGS) $(LDFLAGS) $< -o $@ 115 116.pli~: 117 $(GET) $(GFLAGS) -p $< > $*.pli 118 $(PLI) $(PLIFLAGS) $(LDFLAGS) $*.pli -o $* 119 -rm -f $*.pli 120 121.ccp: 122 @rm -f $*.cbl 123 $(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $< 124 @if(egrep -i -e "EXEC[ ]+SQL[ ]+" $*.cbl >/dev/null 2>&1 ); then \ 125 mv -f $*.cbl $*.sqb; \ 126 chmod 444 $*.sqb; \ 127 print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \ 128 ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \ 129 rm -f $*.sqb; fi 130 @chmod 444 $*.cbl 131 $(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null 132 -rm -f $*.o 133 134.ccp~: 135 $(GET) $(GFLAGS) -p $< > $*.ccp 136 @rm -f $*.cbl 137 $(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $*.ccp 138 @if(egrep -i -e "EXEC[ ]+SQL[ ]+" $*.cbl >/dev/null 2>&1 ); then \ 139 mv -f $*.cbl $*.sqb; \ 140 chmod 444 $*.sqb; \ 141 print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \ 142 ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \ 143 rm -f $*.sqb; fi 144 @chmod 444 $*.cbl 145 $(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null 146 -rm -f $*.o $*.ccp 147 148.sqb: 149 @rm -f $*.cbl 150 $(DB2PREP) $< $(DB2PREPOPTIONS) 151 @chmod 444 $*.cbl 152 $(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null 153 -rm -f $*.o 154 155.sqb~: 156 $(GET) $(GFLAGS) -p $< > $*.sqb 157 @rm -f $*.cbl 158 $(DB2PREP) $*.sqb $(DB2PREPOPTIONS) 159 @chmod 444 $*.cbl 160 $(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null 161 -rm -f $*.o $*.sqb 162 163# DOUBLE SUFFIX RULES 164.cc.o: 165 $(CCC) $(CCFLAGS) -c $< 166.cc~.o: 167 $(GET) $(GFLAGS) -p $< > $*.cc 168 $(CCC) $(CCFLAGS) -c $*.cc 169 -rm -f $*.cc 170.cc~.cc: 171 $(GET) $(GFLAGS) -p $< > $*.cc; chmod 444 $*.cc 172.cpp.o: 173 $(CCC) $(CCFLAGS) -c $< 174.cpp~.o: 175 $(GET) $(GFLAGS) -p $< > $*.cpp 176 $(CCC) $(CCFLAGS) -c $*.cpp 177 -rm -f $*.cpp 178.cpp~.cpp: 179 $(GET) $(GFLAGS) -p $< > $*.cpp; chmod 444 $*.cpp 180.cxx.o: 181 $(CCC) $(CCFLAGS) -c $< 182.cxx~.o: 183 $(GET) $(GFLAGS) -p $< > $*.cxx 184 $(CCC) $(CCFLAGS) -c $*.cxx 185 -rm -f $*.cxx 186.cxx~.cxx: 187 $(GET) $(GFLAGS) -p $< > $*.cxx; chmod 444 $*.cxx 188.F.o: 189 $(FC) $(FFLAGS) -c $< 190.F~.o: 191 $(GET) $(GFLAGS) -p $< > $*.F 192 $(FC) $(FFLAGS) -c $*.F 193 -rm -f $*.F 194.F~.F: 195 $(GET) $(GFLAGS) -p $< > $@ 196.f90.o: 197 $(FC) $(FFLAGS) -c $< 198.f90~.o: 199 $(GET) $(GFLAGS) -p $< > $*.f90 200 $(FC) $(FFLAGS) -c $*.f90 201 -rm -f $*.f90 202.f90~.f90: 203 $(GET) $(GFLAGS) -p $< > $@ 204.y.C: 205 $(YACC) $(YFLAGS) -C $< 206 mv y.tab.C $@ 207.y~.C: 208 $(GET) $(GFLAGS) -p $< > $*.y 209 $(YACC) $(YFLAGS) -C $*.y 210 mv y.tab.C $*.C 211 rm -f $*.y 212.l.C: 213 $(LEX) -C $< 214 mv lex.yy.C $@ 215 216.l~.C: 217 $(GET) $(GFLAGS) -p $< > $*.l 218 $(LEX) -C $*.l 219 mv lex.yy.C $@ 220 rm -f $*.l 221 222.l~.cc: 223 $(GET) $(GFLAGS) -p $< > $*.l 224 $(LEX) -C $*.l 225 mv lex.yy.C $@ 226 rm -f $*.l 227 228.l~.cpp: 229 $(GET) $(GFLAGS) -p $< > $*.l 230 $(LEX) -C $*.l 231 mv lex.yy.C $@ 232 rm -f $*.l 233 234.l~.cxx: 235 $(GET) $(GFLAGS) -p $< > $*.l 236 $(LEX) -C $*.l 237 mv lex.yy.C $@ 238 rm -f $*.l 239 240.l~.c: 241 $(GET) $(GFLAGS) -p $< > $*.l 242 $(LEX) -c $*.l 243 mv lex.yy.c $@ 244 rm -f $*.l 245 246.y.cc: 247 $(YACC) $(YFLAGS) -C $< 248 mv y.tab.C $@ 249.y~.cc: 250 $(GET) $(GFLAGS) -p $< > $*.y 251 $(YACC) $(YFLAGS) -C $*.y 252 mv y.tab.C $*.cc 253 rm -f $*.y 254.l.cc: 255 $(LEX) -C $< 256 mv lex.yy.C $@ 257.y.cpp: 258 $(YACC) $(YFLAGS) -C $< 259 mv y.tab.C $*.@ 260.y~.cpp: 261 $(GET) $(GFLAGS) -p $< > $*.y 262 $(YACC) $(YFLAGS) -C $*.y 263 mv y.tab.C $*.cpp 264 rm -f $*.y 265.l.cpp: 266 $(LEX) -C $< 267 mv lex.yy.C $*.@ 268 269.y.cxx: 270 $(YACC) $(YFLAGS) -C $< 271 mv y.tab.C $*.@ 272.y~.cxx: 273 $(GET) $(GFLAGS) -p $< > $*.y 274 $(YACC) $(YFLAGS) -C $*.y 275 mv y.tab.C $*.cxx 276 rm -f $*.y 277.l.cxx: 278 $(LEX) -C $< 279 mv lex.yy.C $*.@ 280.F.a: 281 $(FC) -c $(FFLAGS) $< 282 $(AR) $(ARFLAGS) $@ $*.o 283 rm -f $*.o 284.F~.a: 285 $(GET) $(GFLAGS) -p $< > $*.F 286 $(FC) -c $(FFLAGS) $*.F 287 $(AR) $(ARFLAGS) $@ $*.o 288 rm -f $*.[Fo] 289.f90.a: 290 $(FC) -c $(FFLAGS) $< 291 $(AR) $(ARFLAGS) $@ $*.o 292 rm -f $*.o 293.f90~.a: 294 $(GET) $(GFLAGS) -p $< > $*.f90 295 $(FC) -c $(FFLAGS) $*.f90 296 $(AR) $(ARFLAGS) $@ $*.o 297 rm -f $*.f90 $*.o 298.cc.a: 299 $(CCC) -c $(CCFLAGS) $< 300 $(AR) $(ARFLAGS) $@ $*.o 301 rm -f $*.o 302.cc~.a: 303 $(GET) $(GFLAGS) -p $< > $*.cc 304 $(CCC) -c $(CCFLAGS) $*.cc 305 $(AR) $(ARFLAGS) $@ $*.o 306 rm -f $*.cc $*.o 307.cpp.a: 308 $(CCC) -c $(CCFLAGS) $< 309 $(AR) $(ARFLAGS) $@ $*.o 310 rm -f $*.o 311.cpp~.a: 312 $(GET) $(GFLAGS) -p $< > $*.cpp 313 $(CCC) -c $(CCFLAGS) $*.cpp 314 $(AR) $(ARFLAGS) $@ $*.o 315 rm -f $*.cpp $*.o 316.cxx.a: 317 $(CCC) -c $(CCFLAGS) $< 318 $(AR) $(ARFLAGS) $@ $*.o 319 rm -f $*.o 320.cxx~.a: 321 $(GET) $(GFLAGS) -p $< > $*.cxx 322 $(CCC) -c $(CCFLAGS) $*.cxx 323 $(AR) $(ARFLAGS) $@ $*.o 324 rm -f $*.cxx $*.o 325.H~.H: 326 $(GET) $(GFLAGS) -p $< > $*.H 327.hxx~.hxx: 328 $(GET) $(GFLAGS) -p $< > $*.hxx 329.hpp~.hpp: 330 $(GET) $(GFLAGS) -p $< > $*.hpp 331 332.cbl.o: 333 $(COB) $(COBFLAGS) -c $< -qadata -qexit=adexit=iwzrmgux:: > /dev/null 334.cbl~.o: 335 $(GET) $(GFLAGS) -p $< > $*.cbl 336 $(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null 337 -rm -f $*.cbl 338 339.cbl~.cbl: 340 $(GET) $(GFLAGS) -p $< > $*.cbl; chmod 444 $*.cbl 341 342.cbl.a: 343 $(COB) -c $(COBFLAGS) $< -qadata -qexit=adexit=iwzrmgux:: > /dev/null 344 $(AR) $(ARFLAGS) $@ $*.o 345 -rm -f $*.o 346.cbl~.a: 347 $(GET) $(GFLAGS) -p $< > $*.cbl 348 $(COB) -c $(COBFLAGS) $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null 349 $(AR) $(ARFLAGS) $@ $*.o 350 -rm -f $*.o $*.cbl 351 352.cpy~.cpy: 353 $(GET) $(GFLAGS) -p $< > $*.cpy; chmod 444 $*.cpy 354 355.pli.o: 356 $(PLI) $(PLIFLAGS) -c $< 357.pli~.o: 358 $(GET) $(GFLAGS) -p $< > $*.pli 359 $(PLI) $(PLIFLAGS) -c $*.pli 360 -rm -f $*.pli 361 362.pli~.pli: 363 $(GET) $(GFLAGS) -p $< > $*.pli; chmod 444 $*.pli 364 365.pli.a: 366 $(PLI) -c $(PLIFLAGS) $< 367 $(AR) $(ARFLAGS) $@ $*.o 368 -rm -f $*.o 369.pli~.a: 370 $(GET) $(GFLAGS) -p $< > $*.pli 371 $(PLI) -c $(PLIFLAGS) $*.pli 372 $(AR) $(ARFLAGS) $@ $*.o 373 -rm -f $*.o $*.pli 374 375.inc~.inc: 376 $(GET) $(GFLAGS) -p $< > $*.inc; chmod 444 $*.inc 377 378.ccp~.ccp: 379 $(GET) $(GFLAGS) -p $< > $*.ccp; chmod 444 $*.ccp 380 381.ccp.cbl: 382 $(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $< 383 @if(egrep -i -e "EXEC[ ]+SQL[ ]+" $*.cbl >/dev/null 2>&1 ); then \ 384 mv -f $*.cbl $*.sqb; \ 385 chmod 444 $*.sqb; \ 386 print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \ 387 ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \ 388 rm -f $*.sqb; fi 389 390 391.ccp.o: 392 @rm -f $*.cbl 393 $(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $< 394 @if(egrep -i -e "EXEC[ ]+SQL[ ]+" $*.cbl >/dev/null 2>&1 ); then \ 395 mv -f $*.cbl $*.sqb; \ 396 chmod 444 $*.sqb; \ 397 print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \ 398 ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \ 399 rm -f $*.sqb; fi 400 @chmod 444 $*.cbl 401 $(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null 402 403.ccp~.o: 404 @rm -f $*.cbl 405 $(GET) $(GFLAGS) -p $< > $*.ccp; chmod 444 $*.ccp 406 $(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $*.ccp 407 @if(egrep -i -e "EXEC[ ]+SQL[ ]+" $*.cbl >/dev/null 2>&1 ); then \ 408 mv -f $*.cbl $*.sqb; \ 409 chmod 444 $*.sqb; \ 410 print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \ 411 ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \ 412 rm -f $*.sqb; fi 413 @chmod 444 $*.cbl 414 $(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null 415 -rm -f $*.ccp 416 417.ccp.a: 418 @rm -f $*.cbl 419 $(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $< 420 @if(egrep -i -e "EXEC[ ]+SQL[ ]+" $*.cbl >/dev/null 2>&1 ); then \ 421 mv -f $*.cbl $*.sqb; \ 422 chmod 444 $*.sqb; \ 423 print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \ 424 ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \ 425 rm -f $*.sqb; fi 426 @chmod 444 $*.cbl 427 $(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null 428 $(AR) $(ARFLAGS) $@ $*.o 429 -rm -f $*.o 430 431.ccp~.a: 432 $(GET) $(GFLAGS) -p $< > $*.ccp; chmod 444 $*.ccp 433 @rm -f $*.cbl 434 $(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $*.ccp 435 @if(egrep -i -e "EXEC[ ]+SQL[ ]+" $*.cbl >/dev/null 2>&1 ); then \ 436 mv -f $*.cbl $*.sqb; \ 437 chmod 444 $*.sqb; \ 438 print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \ 439 ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \ 440 rm -f $*.sqb; fi 441 @chmod 444 $*.cbl 442 $(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null 443 $(AR) $(ARFLAGS) $@ $*.o 444 -rm -f $*.ccp $*.o 445 446.sqb~.sqb: 447 $(GET) $(GFLAGS) -p $< > $*.sqb; chmod 444 $*.sqb 448 449.sqb.cbl: 450 $(DB2PREP) $< $(DB2PREPOPTIONS) 451 452.sqb.o: 453 @rm -f $*.cbl 454 $(DB2PREP) $< $(DB2PREPOPTIONS) 455 @chmod 444 $*.cbl 456 $(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null 457 458.sqb~.o: 459 $(GET) $(GFLAGS) -p $< > $*.sqb; chmod 444 $*.sqb 460 @rm -f $*.cbl 461 $(DB2PREP) $*.sqb $(DB2PREPOPTIONS) 462 @chmod 444 $*.cbl 463 $(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null 464 -rm -f $*.sqb 465 466.sqb.a: 467 @rm -f $*.cbl 468 $(DB2PREP) $< $(DB2PREPOPTIONS) 469 @chmod 444 $*.cbl 470 $(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null 471 $(AR) $(ARFLAGS) $@ $*.o 472 -rm -f $*.o 473 474.sqb~.a: 475 $(GET) $(GFLAGS) -p $< > $*.sqb; chmod 444 $*.sqb 476 @rm -f $*.cbl 477 $(DB2PREP) $*.sqb $(DB2PREPOPTIONS) 478 @chmod 444 $*.cbl 479 $(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null 480 $(AR) $(ARFLAGS) $@ $*.o 481 -rm -f $*.sqb $*.o 482 483 484 485################################# 486### Sources Headers and Objects # 487################################# 488 489HDRS = constants.h \ 490 db.h \ 491 table.h \ 492 xgc.h 493 494EXTHDRS = 495 496SRCS = newplot.c 497 498 499 500OBJS = newplot.o 501 502MAKEFILE = /home/eng/eberand/divers/Tableur/MyPlot/Makefile 503 504####################### 505### Program Libraries # 506####################### 507 508LIBS = 509 510######################## 511### Additional Targets # 512######################## 513 514all: $(OBJS) 515 516$(LIBRARY): $(OBJS) $(MAKEFILE) 517 @echo "Loading $(LIBRARY) ..." 518 @ar cru $(LIBRARY) $(OBJS) 519 @echo "done" 520 521$(PROGRAM): $(OBJS) $(LIBS) $(MAKEFILE) 522 @echo "Linking $(PROGRAM) ..." 523 @$(LD) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROGRAM) 524 @echo "done" 525 526clean:; @rm -f $(OBJS) core 527 528clobber:; @rm -f $(OBJS) $(LIBRARY) $(PROGRAM) core tags 529 530depend: 531 makedepend -Y -- $(CFLAGS) -- $(SRCS) 532 533echo:; @echo $(HDRS) $(SRCS) 534 535extract:; @ar x $(DEST)/$(LIBRARY) 536 537index:; @ctags -wx $(HDRS) $(SRCS) 538 539install:; 540 @if [ "$(LIBRARY)" = "$(TARGET)" ]; then \ 541 (make -f $(MAKEFILE) install_lib); fi 542 @if [ "$(PROGRAM)" = "$(TARGET)" ]; then \ 543 (make -f $(MAKEFILE) install_pro); fi 544 545install_lib: $(LIBRARY) 546 @echo Installing $(LIBRARY) in $(DEST) 547 @if [ $(DEST) != . ]; then \ 548 (rm -f $(DEST)/$(LIBRARY); $(INSTALL) $(LIBRARY) $(DEST)); fi 549 550install_pro: $(PROGRAM) 551 @echo Installing $(PROGRAM) in $(DEST) 552 @-strip $(PROGRAM) 553 @if [ $(DEST) != . ]; then \ 554 (rm -f $(DEST)/$(PROGRAM); $(INSTALL) $(PROGRAM) $(DEST)); fi 555 556print:; @$(PRINT) $(HDRS) $(SRCS) 557 558tags: $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS) 559# DO NOT DELETE 560 561newplot.o: plot.h graphic_gvar.h ../Database/graph.h ../Database/style.h 562newplot.o: ../Database/title.h ../Database/axis.h ../Database/range.h 563