# # Project: pcre2 # # Created on: 10-01-2022 22:01:46 # # commands to use: # make -f Makefile.os4 libpcre2.a # make -f Makefile.os4 libpcre2-posix.a # make -f Makefile.os4 pcre2test # sh RunTest # make -f Makefile.os4 clean # ################################################################### ## ##//// Objects ## ################################################################### libpcre2_OBJ := \ src/pcre2_chartables.o src/pcre2_auto_possess.o src/pcre2_compile.o \ src/pcre2_config.o src/pcre2_context.o src/pcre2_convert.o \ src/pcre2_dfa_match.o src/pcre2_error.o src/pcre2_extuni.o \ src/pcre2_find_bracket.o src/pcre2_jit_compile.o src/pcre2_maketables.o \ src/pcre2_match.o src/pcre2_match_data.o src/pcre2_newline.o \ src/pcre2_ord2utf.o src/pcre2_pattern_info.o src/pcre2_script_run.o \ src/pcre2_serialize.o src/pcre2_string_utils.o src/pcre2_study.o \ src/pcre2_substitute.o src/pcre2_substring.o src/pcre2_tables.o \ src/pcre2_ucd.o src/pcre2_valid_utf.o src/pcre2_xclass.o \ pcre2posix_OBJ := \ src/pcre2posix.o pcre2test_OBJ := \ src/pcre2test.o pcre2grep_OBJ := \ src/pcre2grep.o ################################################################### ## ##//// Variables and Environment ## ################################################################### MCRT := -mcrt=newlib ifeq ($(USE_CLIB2), yes) MCRT := -mcrt=clib2 endif CC := gcc:bin/gcc INCPATH := -I. -Isrc # for pcre2test CFLAGS := $(MCRT) $(INCPATH) -O2 -DHAVE_CONFIG_H -DPCRE2_CODE_UNIT_WIDTH=8 ################################################################### ## ##//// General rules ## ################################################################### .PHONY: all all-before all-after clean clean-custom realclean all: all-before libpcre2.a libpcre2-posix.a all-after all-before: # You can add rules here to execute before the project is built all-after: # You can add rules here to execute after the project is built tests: pcre2test pcre2grep clean: clean-custom @echo "Cleaning compiler objects..." @rm -f $(libpcre2_OBJ) $(pcre2posix_OBJ) $(pcre2test_OBJ) cleanall: clean @echo "Cleaning compiler targets..." @rm -f libpcre.a libpcre-posix.a pcre2test pcre2grep ################################################################### ## ##//// Targets ## ################################################################### libpcre2.a: $(libpcre2_OBJ) ar -rcs libpcre2.a $(libpcre2_OBJ) ranlib libpcre2.a libpcre2-posix.a: $(pcre2posix_OBJ) ar -rcs libpcre2-posix.a $(pcre2posix_OBJ) ranlib libpcre2-posix.a pcre2test: libpcre2.a libpcre2-posix.a $(pcre2test_OBJ) @echo "Linking pcre2test" @gcc:bin/gcc $(MCRT) -o pcre2test $(pcre2test_OBJ) -L. -lauto -lpcre2 -lpcre2-posix @echo "Removing stale debug target: pcre2test" @rm -f pcre2test.debug pcre2grep: libpcre2.a $(pcre2grep_OBJ) @echo "Linking pcre2grep" @gcc:bin/gcc $(MCRT) -o pcre2grep $(pcre2grep_OBJ) -L . -lauto -lpcre2 @echo "Removing stale debug target: pcre2grep" @rm -f pcre2grep.debug ################################################################### ## ##//// Standard rules ## ################################################################### # A default rule to make all the objects listed below # because we are hiding compiler commands from the output .c.o: @echo "Compiling $<" @$(CC) -c $< -o $*.o $(CFLAGS) src/pcre2_chartables.o: src/pcre2_chartables.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_auto_possess.o: src/pcre2_auto_possess.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_compile.o: src/pcre2_compile.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_intmodedep.h \ src/pcre2_config.o: src/pcre2_config.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_context.o: src/pcre2_context.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_convert.o: src/pcre2_convert.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_dfa_match.o: src/pcre2_dfa_match.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_error.o: src/pcre2_error.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_extuni.o: src/pcre2_extuni.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_find_bracket.o: src/pcre2_find_bracket.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_jit_compile.o: src/pcre2_jit_compile.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_intmodedep.h \ src/sljit/sljitLir.c src/sljit/sljitLir.h src/sljit/sljitConfig.h \ src/sljit/sljitConfigInternal.h src/sljit/sljitUtils.c src/sljit/sljitProtExecAllocator.c \ src/sljit/sljitWXExecAllocator.c src/sljit/sljitExecAllocator.c src/pcre2_jit_simd_inc.h \ src/pcre2_jit_neon_inc.h src/pcre2_jit_match.c src/pcre2_maketables.o: src/pcre2_maketables.c src/pcre2_match.o: src/pcre2_match.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_match_data.o: src/pcre2_match_data.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_newline.o: src/pcre2_newline.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_ord2utf.o: src/pcre2_ord2utf.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_pattern_info.o: src/pcre2_pattern_info.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_script_run.o: src/pcre2_script_run.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_serialize.o: src/pcre2_serialize.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2test.o: src/pcre2test.c src/config.h src/pcre2.h \ src/pcre2posix.h src/pcre2_internal.h src/pcre2_ucp.h \ src/pcre2_intmodedep.h src/pcre2_tables.c src/pcre2_ucptables.c \ src/pcre2_ucd.c src/pcre2_printint.c src/pcre2_string_utils.o: src/pcre2_string_utils.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_study.o: src/pcre2_study.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_substitute.o: src/pcre2_substitute.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_substring.o: src/pcre2_substring.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2posix.o: src/pcre2posix.c src/config.h src/pcre2.h \ src/pcre2_tables.o: src/pcre2_tables.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_intmodedep.h \ src/pcre2_ucd.o: src/pcre2_ucd.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_valid_utf.o: src/pcre2_valid_utf.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2_xclass.o: src/pcre2_xclass.c src/config.h src/pcre2_internal.h \ src/pcre2.h src/pcre2_ucp.h src/pcre2grep.o: src/pcre2grep.c src/config.h ################################################################### ## ##//// Custom rules ## ################################################################### runtests: libpcre2.a libpcre2-posix.a tests sh RunTest sh RunGrepTest release: @echo "Create release folders..." @mkdir -p release/local/newlib/lib release/local/clib2/lib release/local/Documentation/pcre2 release/local/common/include @echo "Building newlib based libraries..." @make -f Makefile.os4 all @cp libpcre2.a release/local/newlib/lib/ @cp libpcre2-posix.a release/local/newlib/lib/ @echo "Clean build and libraries files..." @make -f Makefile.os4 cleanall @echo "Building clib2 based libraries..." @make -f Makefile.os4 all USE_CLIB2=yes @cp libpcre2.a release/local/clib2/lib/ @cp libpcre2-posix.a release/local/clib2/lib/ @echo "Copy the necessary files..." @cp src/pcre2.h release/local/common/include/ @cp src/pcre2posix.h release/local/common/include/ @cp COPYING release/local/Documentation/pcre2/ @cp HACKING release/local/Documentation/pcre2/ @cp LICENCE release/local/Documentation/pcre2/ @cp README release/local/Documentation/pcre2/ @cp README-OS4.md release/local/Documentation/pcre2/ @echo "Clean build and libraries files..." @make -f Makefile.os4 cleanall @echo "Creating the lha release file..." @rm -f pcre2.lha @lha -aeqr3 a pcre2.lha release/ @rm -rf release ###################################################################