LIBDIR := .. JSLIBDIR := ${STOLFIHOME}/lib SHELL := /bin/bash # Background option: OP_BACK = 0 COMPS = ${NEW_COMPS} # COMPS = ${ALL_COMPS} # COMPS = ${CHARGED_COMPS} # COMPS = ${SOME_COMPS} # COMPS = ${LATER_COMPS} # Args format: # {BALL}:{SYMB}:{NAME} # where # {BALL} is 1 to make the "chemfm" version with colored disks for the atoms (-style "B") # {SYMB} is 1 to make the "chemdg" version with chemical letter symbols (-style "S") NEW_COMPS := \ 1:1:fatty_18_3_cis_9_12_trans_15 \ 1:1:unbranched_carbon_chain_test OLD_COMPS := \ 1:1:basic_test \ SOME_COMPS := \ 1:1:ethenium_1pos \ 1:1:ethanium_1pos \ 1:1:methenium_1pos \ 1:1:test_formula NEUTRAL_COMPS := \ \ 1:1:trimethylenemethane_2rad \ 1:1:trimethylenemethane_2rad_R0 \ 1:1:trimethylenemethane_2rad_R1 \ 1:1:trimethylenemethane_2rad_R2 \ \ 1:1:deltic_acid \ 1:1:squaric_acid \ 1:1:croconic_acid \ 1:1:rhodizonic_acid \ 1:1:benzenehexol \ 1:1:tetrahydroxy_1_4_benzoquinone \ 1:1:croconic_acid_violet \ 1:1:croconic_acid_blue \ 1:1:2_dicyanomethylene_croconic_acid \ 1:1:1_2_bis_dicyanomethylene_squaric_acid \ \ 1:1:mesoxalic_acid \ 1:1:dioxosuccinic_acid \ 1:1:methanetetracarboxylic_acid \ 1:1:ethylenetetracarboxylic_acid \ 1:1:furantetracarboxylic_acid \ 1:1:benzoquinonetetracarboxylic_acid \ 1:1:mellitic_acid \ \ 1:1:mellitic_anhydride \ 1:1:1_2_dioxetanedione \ 1:1:ethylenetetracarboxylic_dianhydride \ 1:1:ethylenetetracarboxylic_dianhydride_alt \ 1:1:dioxane_tetraketone \ 1:1:hexaoxotricyclobutabenzene \ \ 1:1:carbon_dioxide \ 1:1:ethylene_dione \ 1:1:carbon_suboxide \ 1:1:tetracarbon_dioxide \ 1:1:pentacarbon_dioxide \ \ 1:1:cyclopropanetrione \ 1:1:cyclobutanetetrone \ 1:1:cyclopentanepentone \ 1:1:cyclohexanehexone \ \ 1:1:carbon_monoxide_3_1 \ 1:1:carbon_monoxide_2_2 \ 1:1:carbon_monoxide_1_3 \ 1:1:dicarbon_monoxide_3_1 \ \ 1:1:oxalic_anhydride \ 1:1:1_3_dioxetanedione \ 1:1:1_3_5_trioxanetrione \ 1:1:dioxane_tetraketone \ \ 1:1:furantetracarboxylic_dianhydride \ 1:1:benzoquinonetetracarboxylic_dianhydride \ \ 1:1:hexaphenol_trisoxalate \ 1:1:hexaphenol_triscarbonate \ 1:1:hexaoxotricyclobutabenzene \ \ 1:1:tetrahydroxy_1_4_benzoquinone_bisoxalate \ 1:1:tetrahydroxy_1_4_benzoquinone_biscarbonate \ \ 1:1:tris_3_4_dialkynyl_3_cyclobutene_1_2_dione \ 1:1:tetrakis_3_4_dialkynyl_3_cyclobutene_1_2_dione \ \ 1:1:poly_carbon_suboxide_test \ \ 1:1:poly_carbon_suboxide_Ls \ 1:1:poly_carbon_suboxide_sR \ 1:1:poly_carbon_suboxide_i_1sHs \ 1:1:poly_carbon_suboxide_1sHs \ \ 1:1:poly_carbon_suboxide_Lb_1bHb_bR \ 1:1:poly_carbon_suboxide_Lb_2bHb_bR \ 1:1:poly_carbon_suboxide_Lb_3bHb_bR \ 1:1:poly_carbon_suboxide_Lb_4bHb_bR CHARGED_COMPS := \ \ 1:1:carbonite_1neg \ 1:1:carbonite_2neg \ 1:1:orthocarbonate_4neg \ \ 1:1:acetylenedicarboxylate_2neg \ 1:1:benzoquinonetetracarboxylate_4neg \ 1:1:carbonate_2neg \ 1:1:dicarbonate_2neg \ 1:1:dioxosuccinate_2neg \ 1:1:ethylenetetracarboxylate_4neg \ 1:1:furantetracarboxylate_4neg \ 1:1:mellitate_6neg \ 1:1:mesoxalate_2neg \ 1:1:methanetetracarboxylate_4neg \ 1:1:oxalate_2neg \ 1:1:peroxocarbonate_2neg \ 1:1:peroxodicarbonate_2neg \ \ 1:1:acetylene_dioxide_2neg \ 1:1:cyclobutanetetrone_2neg \ 1:1:cyclohexanehexone_2neg \ 1:1:cyclohexanehexone_4neg \ 1:1:cyclohexanehexone_6neg \ 1:1:cyclopentanepentone_2neg \ 1:1:cyclopropanetrione_2neg \ \ 1:1:croconate_violet_2neg \ 1:1:croconate_blue_2neg \ 1:1:2_dicyanomethylene_croconate_2neg \ 1:1:1_2_bis_dicyanomethylene_squarate_2neg \ 1:1:1_3_bis_dicyanomethylene_squarate_2neg \ \ 1:1:methanium_1pos \ 1:1:methenium_1pos \ 1:1:ethanium_1pos \ 1:1:ethenium_1pos ALL_COMPS := \ 1:1:test_formula \ ${NEUTRAL_COMPS} \ ${CHARGED_COMPS} LATER_COMPS := \ \ 1:1:malonic_anhydride \ 1:1:3_oxetanone \ 1:1:tetracyclopropylmethane \ \ 1:1:cyanoacetylene \ 1:1:ethenone \ 1:1:alpha_propiolactone \ 1:1:ethylene carbonate \ 1:1:1_2_dioxane \ 1:1:1_3_dioxane \ 1:1:1_4_dioxane \ \ 1:1:cyclo_6_carbon_a \ 1:1:cyclo_6_carbon_b \ \ 1:1:cyclo_18_carbon_a \ 1:1:cyclo_18_carbon_b \ \ 1:1:dihydroxymalonic_acid \ 1:1:polyketone \ \ 1:1:carbon_trioxide \ \ 1:1:poly_carbon_suboxide_1sHb_bR \ 1:1:poly_carbon_suboxide_2bHs_bR \ 1:1:poly_carbon_suboxide_2sHs \ 1:1:poly_carbon_suboxide_6sHs \ 1:1:poly_carbon_suboxide_Lb_1bHs \ 1:1:poly_carbon_suboxide_Lb_2bHs \ 1:1:poly_carbon_suboxide_Ls_i_sR \ 1:1:poly_carbon_suboxide_Ls_u_sR \ PYTHONPATH := ".:${LIBDIR}:${JSLIBDIR}" .PHONY: \ all-clean all-figs \ html-index \ single-comp single-comp-clean \ single-fig single-fig-clean # all: all-clean all-figs all: all-clean all-figs html-index # all: all-clean parse-code all-figs: cd ${LIBDIR} && ${MAKE} install for f in ${COMPS} ; do \ ${MAKE} COMPDATA="$$f" single-comp ; \ done all-clean: for f in ${COMPS} ; do \ ${MAKE} COMPDATA="$$f" single-comp-clean ; \ done parse-code: cd ${LIBDIR} && ${MAKE} install export PYTHONPATH=${PYTHONPATH}; \ ( echo 'import mformula_fatty_acid as mfa' ; \ echo 'n, MB = mfa.build_formula_fatty_parse_code("18:3 cis=7,9 trans=12 tri=3,15")' ; \ echo 'print(n,MB)' \ ) \ | python3 html-index: ls -1 out/*.svg \ | make-image-index \ -title 'Chemical formula figures' \ -suffix '_icon' \ -name chemform-pics ######################################################################### # Recursive section for each ${COMPDATA} ifneq "/" "/${COMPDATA}" COMPARGS := ${subst :, ,${COMPDATA}} BSTYLE := ${word 1, ${COMPARGS}} SSTYLE := ${word 2, ${COMPARGS}} SNAME := ${word 3, ${COMPARGS}} INDIR := in MAKEFIG := ${INDIR}/${SNAME}.py single-comp: ifeq "${BSTYLE}" "1" ${MAKE} SNAME=${SNAME} STYLE="B" single-fig endif ifeq "${SSTYLE}" "1" ${MAKE} SNAME=${SNAME} STYLE="S" single-fig endif single-comp-clean: ifeq "${BSTYLE}" "1" ${MAKE} SNAME=${SNAME} STYLE="B" single-fig-clean endif ifeq "${SSTYLE}" "1" ${MAKE} SNAME=${SNAME} STYLE="S" single-fig-clean endif ######################################################################### # Recursive section for each ${SNAME},${STYLE} ifneq "/" "/${SNAME}" ifneq "/" "/${STYLE}" PREFIX := bogus ifeq "${STYLE}" "B" PREFIX := chemfm endif ifeq "${STYLE}" "S" PREFIX := chemdg endif OUTDIR := out OUTFILE = ${OUTDIR}/${PREFIX}_${SNAME}.svg OUTICON = ${OUTDIR}/${PREFIX}_${SNAME}_icon.svg OUTCMTS = ${OUTDIR}/${PREFIX}_${SNAME}.comments single-fig-clean: -/bin/rm -f ${OUTFILE} ${OUTICON} ${OUTCMTS} single-fig: ${OUTFILE} ${OUTICON} ${OUTCMTS} ${OUTFILE}: ${MAKEFIG} ${FULL_LIBS} Makefile mkdir -p ${OUTDIR} -rm -f ${OUTFILE} export PYTHONPATH=${PYTHONPATH} ; \ ${MAKEFIG} \ -style ${STYLE} \ > ${OUTFILE} -@if [[ -r ${OUTFILE} ]]; then \ display -title '%f' ${OUTFILE} ; \ fi ${OUTICON}: ${OUTFILE} make-icon-for-image \ -suffix "_icon" ${OUTFILE} ${OUTCMTS}: @echo "Formula of ${subst _, ,${SNAME}} (style ${STYLE})" > ${OUTCMTS} endif endif # End of ${STYLE},${SNAME} section ######################################################################### endif # End of ${COMPDATA} section #########################################################################