SCPI units support + netbeans project
| | |
| | | |
| | | # Backup files |
| | | *~ |
| | | /netbeans/nbproject/private/ |
| | | /netbeans/build/Debug/ |
| | | /netbeans/dist/Debug/ |
New file |
| | |
| | | # This code depends on make tool being used |
| | | DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES})) |
| | | ifneq (${DEPFILES},) |
| | | include ${DEPFILES} |
| | | endif |
New file |
| | |
| | | # |
| | | # There exist several targets which are by default empty and which can be |
| | | # used for execution of your targets. These targets are usually executed |
| | | # before and after some main targets. They are: |
| | | # |
| | | # .build-pre: called before 'build' target |
| | | # .build-post: called after 'build' target |
| | | # .clean-pre: called before 'clean' target |
| | | # .clean-post: called after 'clean' target |
| | | # .clobber-pre: called before 'clobber' target |
| | | # .clobber-post: called after 'clobber' target |
| | | # .all-pre: called before 'all' target |
| | | # .all-post: called after 'all' target |
| | | # .help-pre: called before 'help' target |
| | | # .help-post: called after 'help' target |
| | | # |
| | | # Targets beginning with '.' are not intended to be called on their own. |
| | | # |
| | | # Main targets can be executed directly, and they are: |
| | | # |
| | | # build build a specific configuration |
| | | # clean remove built files from a configuration |
| | | # clobber remove all built files |
| | | # all build all configurations |
| | | # help print help mesage |
| | | # |
| | | # Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and |
| | | # .help-impl are implemented in nbproject/makefile-impl.mk. |
| | | # |
| | | # Available make variables: |
| | | # |
| | | # CND_BASEDIR base directory for relative paths |
| | | # CND_DISTDIR default top distribution directory (build artifacts) |
| | | # CND_BUILDDIR default top build directory (object files, ...) |
| | | # CONF name of current configuration |
| | | # CND_PLATFORM_${CONF} platform name (current configuration) |
| | | # CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration) |
| | | # CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration) |
| | | # CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration) |
| | | # CND_PACKAGE_DIR_${CONF} directory of package (current configuration) |
| | | # CND_PACKAGE_NAME_${CONF} name of package (current configuration) |
| | | # CND_PACKAGE_PATH_${CONF} path to package (current configuration) |
| | | # |
| | | # NOCDDL |
| | | |
| | | |
| | | # Environment |
| | | MKDIR=mkdir |
| | | CP=cp |
| | | CCADMIN=CCadmin |
| | | |
| | | |
| | | # build |
| | | build: .build-post |
| | | |
| | | .build-pre: |
| | | # Add your pre 'build' code here... |
| | | |
| | | .build-post: .build-impl |
| | | # Add your post 'build' code here... |
| | | |
| | | |
| | | # clean |
| | | clean: .clean-post |
| | | |
| | | .clean-pre: |
| | | # Add your pre 'clean' code here... |
| | | |
| | | .clean-post: .clean-impl |
| | | # Add your post 'clean' code here... |
| | | |
| | | |
| | | # clobber |
| | | clobber: .clobber-post |
| | | |
| | | .clobber-pre: |
| | | # Add your pre 'clobber' code here... |
| | | |
| | | .clobber-post: .clobber-impl |
| | | # Add your post 'clobber' code here... |
| | | |
| | | |
| | | # all |
| | | all: .all-post |
| | | |
| | | .all-pre: |
| | | # Add your pre 'all' code here... |
| | | |
| | | .all-post: .all-impl |
| | | # Add your post 'all' code here... |
| | | |
| | | |
| | | # build tests |
| | | build-tests: .build-tests-post |
| | | |
| | | .build-tests-pre: |
| | | # Add your pre 'build-tests' code here... |
| | | |
| | | .build-tests-post: .build-tests-impl |
| | | # Add your post 'build-tests' code here... |
| | | |
| | | |
| | | # run tests |
| | | test: .test-post |
| | | |
| | | .test-pre: |
| | | # Add your pre 'test' code here... |
| | | |
| | | .test-post: .test-impl |
| | | # Add your post 'test' code here... |
| | | |
| | | |
| | | # help |
| | | help: .help-post |
| | | |
| | | .help-pre: |
| | | # Add your pre 'help' code here... |
| | | |
| | | .help-post: .help-impl |
| | | # Add your post 'help' code here... |
| | | |
| | | |
| | | |
| | | # include project implementation makefile |
| | | include nbproject/Makefile-impl.mk |
| | | |
| | | # include project make variables |
| | | include nbproject/Makefile-variables.mk |
New file |
| | |
| | | # |
| | | # Generated Makefile - do not edit! |
| | | # |
| | | # Edit the Makefile in the project folder instead (../Makefile). Each target |
| | | # has a -pre and a -post target defined where you can add customized code. |
| | | # |
| | | # This makefile implements configuration specific macros and targets. |
| | | |
| | | |
| | | # Environment |
| | | MKDIR=mkdir |
| | | CP=cp |
| | | GREP=grep |
| | | NM=nm |
| | | CCADMIN=CCadmin |
| | | RANLIB=ranlib |
| | | CC=gcc |
| | | CCC=g++ |
| | | CXX=g++ |
| | | FC=gfortran |
| | | AS=as |
| | | |
| | | # Macros |
| | | CND_PLATFORM=GNU-Linux-x86 |
| | | CND_CONF=Debug |
| | | CND_DISTDIR=dist |
| | | CND_BUILDDIR=build |
| | | |
| | | # Include project Makefile |
| | | include Makefile |
| | | |
| | | # Object Directory |
| | | OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} |
| | | |
| | | # Object Files |
| | | OBJECTFILES= \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi_utils.o \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi.o \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi_minimal.o \ |
| | | ${OBJECTDIR}/_ext/1472/test-parser.o \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi_units.o \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi_error.o |
| | | |
| | | # Test Directory |
| | | TESTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tests |
| | | |
| | | # Test Files |
| | | TESTFILES= \ |
| | | ${TESTDIR}/TestFiles/f3 |
| | | |
| | | # C Compiler Flags |
| | | CFLAGS=-Wextra -g3 -O0 |
| | | |
| | | # CC Compiler Flags |
| | | CCFLAGS= |
| | | CXXFLAGS= |
| | | |
| | | # Fortran Compiler Flags |
| | | FFLAGS= |
| | | |
| | | # Assembler Flags |
| | | ASFLAGS= |
| | | |
| | | # Link Libraries and Options |
| | | LDLIBSOPTIONS=-lcunit -lcunit |
| | | |
| | | # Build Targets |
| | | .build-conf: ${BUILD_SUBPROJECTS} |
| | | "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${TESTDIR}/TestFiles/f2 |
| | | |
| | | ${TESTDIR}/TestFiles/f2: ${OBJECTFILES} |
| | | ${MKDIR} -p ${TESTDIR}/TestFiles |
| | | ${LINK.c} -g3 -o ${TESTDIR}/TestFiles/f2 ${OBJECTFILES} ${LDLIBSOPTIONS} |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_utils.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi_utils.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -Wall -I. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_utils.o ../scpi/scpi_utils.c |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi_ieee488.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -Wall -I. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o ../scpi/scpi_ieee488.c |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -Wall -I. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi.o ../scpi/scpi.c |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_minimal.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi_minimal.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -Wall -I. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_minimal.o ../scpi/scpi_minimal.c |
| | | |
| | | ${OBJECTDIR}/_ext/1472/test-parser.o: nbproject/Makefile-${CND_CONF}.mk ../test-parser.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/1472 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -Wall -I. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/test-parser.o ../test-parser.c |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_units.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi_units.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -Wall -I. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_units.o ../scpi/scpi_units.c |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_error.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi_error.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -Wall -I. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_error.o ../scpi/scpi_error.c |
| | | |
| | | # Subprojects |
| | | .build-subprojects: |
| | | |
| | | # Build Test Targets |
| | | .build-tests-conf: .build-conf ${TESTFILES} |
| | | ${TESTDIR}/TestFiles/f3: ${TESTDIR}/tests/test_scpi_utils.o ${OBJECTFILES:%.o=%_nomain.o} |
| | | ${MKDIR} -p ${TESTDIR}/TestFiles |
| | | ${LINK.c} -o ${TESTDIR}/TestFiles/f3 $^ ${LDLIBSOPTIONS} |
| | | |
| | | |
| | | ${TESTDIR}/tests/test_scpi_utils.o: tests/test_scpi_utils.c |
| | | ${MKDIR} -p ${TESTDIR}/tests |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -Wall -I. -I. -MMD -MP -MF $@.d -o ${TESTDIR}/tests/test_scpi_utils.o tests/test_scpi_utils.c |
| | | |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_utils_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi_utils.o ../scpi/scpi_utils.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi_utils.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -Wall -I. -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_utils_nomain.o ../scpi/scpi_utils.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi_utils.o ${OBJECTDIR}/_ext/760632520/scpi_utils_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_ieee488_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o ../scpi/scpi_ieee488.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -Wall -I. -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_ieee488_nomain.o ../scpi/scpi_ieee488.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o ${OBJECTDIR}/_ext/760632520/scpi_ieee488_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi.o ../scpi/scpi.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -Wall -I. -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_nomain.o ../scpi/scpi.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi.o ${OBJECTDIR}/_ext/760632520/scpi_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_minimal_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi_minimal.o ../scpi/scpi_minimal.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi_minimal.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -Wall -I. -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_minimal_nomain.o ../scpi/scpi_minimal.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi_minimal.o ${OBJECTDIR}/_ext/760632520/scpi_minimal_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/1472/test-parser_nomain.o: ${OBJECTDIR}/_ext/1472/test-parser.o ../test-parser.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/1472 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/1472/test-parser.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -Wall -I. -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/test-parser_nomain.o ../test-parser.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/1472/test-parser.o ${OBJECTDIR}/_ext/1472/test-parser_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_units_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi_units.o ../scpi/scpi_units.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi_units.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -Wall -I. -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_units_nomain.o ../scpi/scpi_units.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi_units.o ${OBJECTDIR}/_ext/760632520/scpi_units_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_error_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi_error.o ../scpi/scpi_error.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi_error.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -Wall -I. -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_error_nomain.o ../scpi/scpi_error.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi_error.o ${OBJECTDIR}/_ext/760632520/scpi_error_nomain.o;\ |
| | | fi |
| | | |
| | | # Run Test Targets |
| | | .test-conf: |
| | | @if [ "${TEST}" = "" ]; \ |
| | | then \ |
| | | ${TESTDIR}/TestFiles/f3 || true; \ |
| | | else \ |
| | | ./${TEST} || true; \ |
| | | fi |
| | | |
| | | # Clean Targets |
| | | .clean-conf: ${CLEAN_SUBPROJECTS} |
| | | ${RM} -r ${CND_BUILDDIR}/${CND_CONF} |
| | | ${RM} ${TESTDIR}/TestFiles/f2 |
| | | |
| | | # Subprojects |
| | | .clean-subprojects: |
| | | |
| | | # Enable dependency checking |
| | | .dep.inc: .depcheck-impl |
| | | |
| | | include .dep.inc |
New file |
| | |
| | | # |
| | | # Generated Makefile - do not edit! |
| | | # |
| | | # Edit the Makefile in the project folder instead (../Makefile). Each target |
| | | # has a -pre and a -post target defined where you can add customized code. |
| | | # |
| | | # This makefile implements configuration specific macros and targets. |
| | | |
| | | |
| | | # Environment |
| | | MKDIR=mkdir |
| | | CP=cp |
| | | GREP=grep |
| | | NM=nm |
| | | CCADMIN=CCadmin |
| | | RANLIB=ranlib |
| | | CC=gcc |
| | | CCC=g++ |
| | | CXX=g++ |
| | | FC=gfortran |
| | | AS=as |
| | | |
| | | # Macros |
| | | CND_PLATFORM=GNU-Linux-x86 |
| | | CND_CONF=Release |
| | | CND_DISTDIR=dist |
| | | CND_BUILDDIR=build |
| | | |
| | | # Include project Makefile |
| | | include Makefile |
| | | |
| | | # Object Directory |
| | | OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} |
| | | |
| | | # Object Files |
| | | OBJECTFILES= \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi_utils.o \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi.o \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi_minimal.o \ |
| | | ${OBJECTDIR}/_ext/1472/test-parser.o \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi_units.o \ |
| | | ${OBJECTDIR}/_ext/760632520/scpi_error.o |
| | | |
| | | # Test Directory |
| | | TESTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tests |
| | | |
| | | # Test Files |
| | | TESTFILES= \ |
| | | ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/netbeans |
| | | |
| | | # C Compiler Flags |
| | | CFLAGS= |
| | | |
| | | # CC Compiler Flags |
| | | CCFLAGS= |
| | | CXXFLAGS= |
| | | |
| | | # Fortran Compiler Flags |
| | | FFLAGS= |
| | | |
| | | # Assembler Flags |
| | | ASFLAGS= |
| | | |
| | | # Link Libraries and Options |
| | | LDLIBSOPTIONS= |
| | | |
| | | # Build Targets |
| | | .build-conf: ${BUILD_SUBPROJECTS} |
| | | "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/scpi_parser |
| | | |
| | | ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/scpi_parser: ${OBJECTFILES} |
| | | ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} |
| | | ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/scpi_parser ${OBJECTFILES} ${LDLIBSOPTIONS} |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_utils.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi_utils.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_utils.o ../scpi/scpi_utils.c |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi_ieee488.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o ../scpi/scpi_ieee488.c |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi.o ../scpi/scpi.c |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_minimal.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi_minimal.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_minimal.o ../scpi/scpi_minimal.c |
| | | |
| | | ${OBJECTDIR}/_ext/1472/test-parser.o: nbproject/Makefile-${CND_CONF}.mk ../test-parser.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/1472 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/test-parser.o ../test-parser.c |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_units.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi_units.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_units.o ../scpi/scpi_units.c |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_error.o: nbproject/Makefile-${CND_CONF}.mk ../scpi/scpi_error.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_error.o ../scpi/scpi_error.c |
| | | |
| | | # Subprojects |
| | | .build-subprojects: |
| | | |
| | | # Build Test Targets |
| | | .build-tests-conf: .build-conf ${TESTFILES} |
| | | ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/netbeans: ${TESTDIR}/tests/test_scpi_utils.o ${OBJECTFILES:%.o=%_nomain.o} |
| | | ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} |
| | | ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/netbeans $^ ${LDLIBSOPTIONS} |
| | | |
| | | |
| | | ${TESTDIR}/tests/test_scpi_utils.o: tests/test_scpi_utils.c |
| | | ${MKDIR} -p ${TESTDIR}/tests |
| | | ${RM} $@.d |
| | | $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${TESTDIR}/tests/test_scpi_utils.o tests/test_scpi_utils.c |
| | | |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_utils_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi_utils.o ../scpi/scpi_utils.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi_utils.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -O2 -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_utils_nomain.o ../scpi/scpi_utils.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi_utils.o ${OBJECTDIR}/_ext/760632520/scpi_utils_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_ieee488_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o ../scpi/scpi_ieee488.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -O2 -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_ieee488_nomain.o ../scpi/scpi_ieee488.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi_ieee488.o ${OBJECTDIR}/_ext/760632520/scpi_ieee488_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi.o ../scpi/scpi.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -O2 -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_nomain.o ../scpi/scpi.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi.o ${OBJECTDIR}/_ext/760632520/scpi_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_minimal_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi_minimal.o ../scpi/scpi_minimal.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi_minimal.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -O2 -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_minimal_nomain.o ../scpi/scpi_minimal.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi_minimal.o ${OBJECTDIR}/_ext/760632520/scpi_minimal_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/1472/test-parser_nomain.o: ${OBJECTDIR}/_ext/1472/test-parser.o ../test-parser.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/1472 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/1472/test-parser.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -O2 -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/test-parser_nomain.o ../test-parser.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/1472/test-parser.o ${OBJECTDIR}/_ext/1472/test-parser_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_units_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi_units.o ../scpi/scpi_units.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi_units.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -O2 -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_units_nomain.o ../scpi/scpi_units.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi_units.o ${OBJECTDIR}/_ext/760632520/scpi_units_nomain.o;\ |
| | | fi |
| | | |
| | | ${OBJECTDIR}/_ext/760632520/scpi_error_nomain.o: ${OBJECTDIR}/_ext/760632520/scpi_error.o ../scpi/scpi_error.c |
| | | ${MKDIR} -p ${OBJECTDIR}/_ext/760632520 |
| | | @NMOUTPUT=`${NM} ${OBJECTDIR}/_ext/760632520/scpi_error.o`; \ |
| | | if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \ |
| | | (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \ |
| | | then \ |
| | | ${RM} $@.d;\ |
| | | $(COMPILE.c) -O2 -Dmain=__nomain -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/760632520/scpi_error_nomain.o ../scpi/scpi_error.c;\ |
| | | else \ |
| | | ${CP} ${OBJECTDIR}/_ext/760632520/scpi_error.o ${OBJECTDIR}/_ext/760632520/scpi_error_nomain.o;\ |
| | | fi |
| | | |
| | | # Run Test Targets |
| | | .test-conf: |
| | | @if [ "${TEST}" = "" ]; \ |
| | | then \ |
| | | ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/netbeans || true; \ |
| | | else \ |
| | | ./${TEST} || true; \ |
| | | fi |
| | | |
| | | # Clean Targets |
| | | .clean-conf: ${CLEAN_SUBPROJECTS} |
| | | ${RM} -r ${CND_BUILDDIR}/${CND_CONF} |
| | | ${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/scpi_parser |
| | | |
| | | # Subprojects |
| | | .clean-subprojects: |
| | | |
| | | # Enable dependency checking |
| | | .dep.inc: .depcheck-impl |
| | | |
| | | include .dep.inc |
New file |
| | |
| | | # |
| | | # Generated Makefile - do not edit! |
| | | # |
| | | # Edit the Makefile in the project folder instead (../Makefile). Each target |
| | | # has a pre- and a post- target defined where you can add customization code. |
| | | # |
| | | # This makefile implements macros and targets common to all configurations. |
| | | # |
| | | # NOCDDL |
| | | |
| | | |
| | | # Building and Cleaning subprojects are done by default, but can be controlled with the SUB |
| | | # macro. If SUB=no, subprojects will not be built or cleaned. The following macro |
| | | # statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf |
| | | # and .clean-reqprojects-conf unless SUB has the value 'no' |
| | | SUB_no=NO |
| | | SUBPROJECTS=${SUB_${SUB}} |
| | | BUILD_SUBPROJECTS_=.build-subprojects |
| | | BUILD_SUBPROJECTS_NO= |
| | | BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}} |
| | | CLEAN_SUBPROJECTS_=.clean-subprojects |
| | | CLEAN_SUBPROJECTS_NO= |
| | | CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}} |
| | | |
| | | |
| | | # Project Name |
| | | PROJECTNAME=netbeans |
| | | |
| | | # Active Configuration |
| | | DEFAULTCONF=Debug |
| | | CONF=${DEFAULTCONF} |
| | | |
| | | # All Configurations |
| | | ALLCONFS=Debug Release |
| | | |
| | | |
| | | # build |
| | | .build-impl: .build-pre .validate-impl .depcheck-impl |
| | | @#echo "=> Running $@... Configuration=$(CONF)" |
| | | "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf |
| | | |
| | | |
| | | # clean |
| | | .clean-impl: .clean-pre .validate-impl .depcheck-impl |
| | | @#echo "=> Running $@... Configuration=$(CONF)" |
| | | "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf |
| | | |
| | | |
| | | # clobber |
| | | .clobber-impl: .clobber-pre .depcheck-impl |
| | | @#echo "=> Running $@..." |
| | | for CONF in ${ALLCONFS}; \ |
| | | do \ |
| | | "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \ |
| | | done |
| | | |
| | | # all |
| | | .all-impl: .all-pre .depcheck-impl |
| | | @#echo "=> Running $@..." |
| | | for CONF in ${ALLCONFS}; \ |
| | | do \ |
| | | "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \ |
| | | done |
| | | |
| | | # build tests |
| | | .build-tests-impl: .build-impl .build-tests-pre |
| | | @#echo "=> Running $@... Configuration=$(CONF)" |
| | | "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf |
| | | |
| | | # run tests |
| | | .test-impl: .build-tests-impl .test-pre |
| | | @#echo "=> Running $@... Configuration=$(CONF)" |
| | | "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf |
| | | |
| | | # dependency checking support |
| | | .depcheck-impl: |
| | | @echo "# This code depends on make tool being used" >.dep.inc |
| | | @if [ -n "${MAKE_VERSION}" ]; then \ |
| | | echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \ |
| | | echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \ |
| | | echo "include \$${DEPFILES}" >>.dep.inc; \ |
| | | echo "endif" >>.dep.inc; \ |
| | | else \ |
| | | echo ".KEEP_STATE:" >>.dep.inc; \ |
| | | echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \ |
| | | fi |
| | | |
| | | # configuration validation |
| | | .validate-impl: |
| | | @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \ |
| | | then \ |
| | | echo ""; \ |
| | | echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \ |
| | | echo "See 'make help' for details."; \ |
| | | echo "Current directory: " `pwd`; \ |
| | | echo ""; \ |
| | | fi |
| | | @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \ |
| | | then \ |
| | | exit 1; \ |
| | | fi |
| | | |
| | | |
| | | # help |
| | | .help-impl: .help-pre |
| | | @echo "This makefile supports the following configurations:" |
| | | @echo " ${ALLCONFS}" |
| | | @echo "" |
| | | @echo "and the following targets:" |
| | | @echo " build (default target)" |
| | | @echo " clean" |
| | | @echo " clobber" |
| | | @echo " all" |
| | | @echo " help" |
| | | @echo "" |
| | | @echo "Makefile Usage:" |
| | | @echo " make [CONF=<CONFIGURATION>] [SUB=no] build" |
| | | @echo " make [CONF=<CONFIGURATION>] [SUB=no] clean" |
| | | @echo " make [SUB=no] clobber" |
| | | @echo " make [SUB=no] all" |
| | | @echo " make help" |
| | | @echo "" |
| | | @echo "Target 'build' will build a specific configuration and, unless 'SUB=no'," |
| | | @echo " also build subprojects." |
| | | @echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no'," |
| | | @echo " also clean subprojects." |
| | | @echo "Target 'clobber' will remove all built files from all configurations and," |
| | | @echo " unless 'SUB=no', also from subprojects." |
| | | @echo "Target 'all' will will build all configurations and, unless 'SUB=no'," |
| | | @echo " also build subprojects." |
| | | @echo "Target 'help' prints this message." |
| | | @echo "" |
| | | |
New file |
| | |
| | | # |
| | | # Generated - do not edit! |
| | | # |
| | | # NOCDDL |
| | | # |
| | | CND_BASEDIR=`pwd` |
| | | CND_BUILDDIR=build |
| | | CND_DISTDIR=dist |
| | | # Debug configuration |
| | | CND_PLATFORM_Debug=GNU-Linux-x86 |
| | | CND_ARTIFACT_DIR_Debug=build/Debug/GNU-Linux-x86/tests/TestFiles |
| | | CND_ARTIFACT_NAME_Debug=f2 |
| | | CND_ARTIFACT_PATH_Debug=build/Debug/GNU-Linux-x86/tests/TestFiles/f2 |
| | | CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux-x86/package |
| | | CND_PACKAGE_NAME_Debug=scpi_parser.tar |
| | | CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux-x86/package/scpi_parser.tar |
| | | # Release configuration |
| | | CND_PLATFORM_Release=GNU-Linux-x86 |
| | | CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux-x86 |
| | | CND_ARTIFACT_NAME_Release=scpi_parser |
| | | CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux-x86/scpi_parser |
| | | CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux-x86/package |
| | | CND_PACKAGE_NAME_Release=scpi_parser.tar |
| | | CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux-x86/package/scpi_parser.tar |
| | | # |
| | | # include compiler specific variables |
| | | # |
| | | # dmake command |
| | | ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \ |
| | | (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk) |
| | | # |
| | | # gmake command |
| | | .PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)) |
| | | # |
| | | include nbproject/private/Makefile-variables.mk |
New file |
| | |
| | | #!/bin/bash -x |
| | | |
| | | # |
| | | # Generated - do not edit! |
| | | # |
| | | |
| | | # Macros |
| | | TOP=`pwd` |
| | | CND_PLATFORM=GNU-Linux-x86 |
| | | CND_CONF=Debug |
| | | CND_DISTDIR=dist |
| | | CND_BUILDDIR=build |
| | | NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging |
| | | TMPDIRNAME=tmp-packaging |
| | | OUTPUT_PATH=${TESTDIR}/TestFiles/f2 |
| | | OUTPUT_BASENAME=f2 |
| | | PACKAGE_TOP_DIR=scpi_parser/ |
| | | |
| | | # Functions |
| | | function checkReturnCode |
| | | { |
| | | rc=$? |
| | | if [ $rc != 0 ] |
| | | then |
| | | exit $rc |
| | | fi |
| | | } |
| | | function makeDirectory |
| | | # $1 directory path |
| | | # $2 permission (optional) |
| | | { |
| | | mkdir -p "$1" |
| | | checkReturnCode |
| | | if [ "$2" != "" ] |
| | | then |
| | | chmod $2 "$1" |
| | | checkReturnCode |
| | | fi |
| | | } |
| | | function copyFileToTmpDir |
| | | # $1 from-file path |
| | | # $2 to-file path |
| | | # $3 permission |
| | | { |
| | | cp "$1" "$2" |
| | | checkReturnCode |
| | | if [ "$3" != "" ] |
| | | then |
| | | chmod $3 "$2" |
| | | checkReturnCode |
| | | fi |
| | | } |
| | | |
| | | # Setup |
| | | cd "${TOP}" |
| | | mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package |
| | | rm -rf ${NBTMPDIR} |
| | | mkdir -p ${NBTMPDIR} |
| | | |
| | | # Copy files and create directories and links |
| | | cd "${TOP}" |
| | | makeDirectory "${NBTMPDIR}/scpi_parser/bin" |
| | | copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 |
| | | |
| | | |
| | | # Generate tar file |
| | | cd "${TOP}" |
| | | rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/scpi_parser.tar |
| | | cd ${NBTMPDIR} |
| | | tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/scpi_parser.tar * |
| | | checkReturnCode |
| | | |
| | | # Cleanup |
| | | cd "${TOP}" |
| | | rm -rf ${NBTMPDIR} |
New file |
| | |
| | | #!/bin/bash -x |
| | | |
| | | # |
| | | # Generated - do not edit! |
| | | # |
| | | |
| | | # Macros |
| | | TOP=`pwd` |
| | | CND_PLATFORM=GNU-Linux-x86 |
| | | CND_CONF=Release |
| | | CND_DISTDIR=dist |
| | | CND_BUILDDIR=build |
| | | NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging |
| | | TMPDIRNAME=tmp-packaging |
| | | OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/scpi_parser |
| | | OUTPUT_BASENAME=scpi_parser |
| | | PACKAGE_TOP_DIR=scpi_parser/ |
| | | |
| | | # Functions |
| | | function checkReturnCode |
| | | { |
| | | rc=$? |
| | | if [ $rc != 0 ] |
| | | then |
| | | exit $rc |
| | | fi |
| | | } |
| | | function makeDirectory |
| | | # $1 directory path |
| | | # $2 permission (optional) |
| | | { |
| | | mkdir -p "$1" |
| | | checkReturnCode |
| | | if [ "$2" != "" ] |
| | | then |
| | | chmod $2 "$1" |
| | | checkReturnCode |
| | | fi |
| | | } |
| | | function copyFileToTmpDir |
| | | # $1 from-file path |
| | | # $2 to-file path |
| | | # $3 permission |
| | | { |
| | | cp "$1" "$2" |
| | | checkReturnCode |
| | | if [ "$3" != "" ] |
| | | then |
| | | chmod $3 "$2" |
| | | checkReturnCode |
| | | fi |
| | | } |
| | | |
| | | # Setup |
| | | cd "${TOP}" |
| | | mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package |
| | | rm -rf ${NBTMPDIR} |
| | | mkdir -p ${NBTMPDIR} |
| | | |
| | | # Copy files and create directories and links |
| | | cd "${TOP}" |
| | | makeDirectory "${NBTMPDIR}/scpi_parser/bin" |
| | | copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 |
| | | |
| | | |
| | | # Generate tar file |
| | | cd "${TOP}" |
| | | rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/scpi_parser.tar |
| | | cd ${NBTMPDIR} |
| | | tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/scpi_parser.tar * |
| | | checkReturnCode |
| | | |
| | | # Cleanup |
| | | cd "${TOP}" |
| | | rm -rf ${NBTMPDIR} |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <configurationDescriptor version="80"> |
| | | <logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT"> |
| | | <logicalFolder name="HeaderFiles" |
| | | displayName="Header Files" |
| | | projectFiles="true"> |
| | | <logicalFolder name="f1" displayName="scpi" projectFiles="true"> |
| | | <itemPath>../scpi/scpi.h</itemPath> |
| | | <itemPath>../scpi/scpi_constants.h</itemPath> |
| | | <itemPath>../scpi/scpi_error.h</itemPath> |
| | | <itemPath>../scpi/scpi_ieee488.h</itemPath> |
| | | <itemPath>../scpi/scpi_minimal.h</itemPath> |
| | | <itemPath>../scpi/scpi_utils.h</itemPath> |
| | | </logicalFolder> |
| | | </logicalFolder> |
| | | <logicalFolder name="ResourceFiles" |
| | | displayName="Resource Files" |
| | | projectFiles="true"> |
| | | </logicalFolder> |
| | | <logicalFolder name="SourceFiles" |
| | | displayName="Source Files" |
| | | projectFiles="true"> |
| | | <logicalFolder name="f1" displayName="scpi" projectFiles="true"> |
| | | <itemPath>../scpi/scpi.c</itemPath> |
| | | <itemPath>../scpi/scpi_error.c</itemPath> |
| | | <itemPath>../scpi/scpi_ieee488.c</itemPath> |
| | | <itemPath>../scpi/scpi_minimal.c</itemPath> |
| | | <itemPath>../scpi/scpi_units.c</itemPath> |
| | | <itemPath>../scpi/scpi_utils.c</itemPath> |
| | | </logicalFolder> |
| | | <itemPath>../test-parser.c</itemPath> |
| | | </logicalFolder> |
| | | <logicalFolder name="TestFiles" |
| | | displayName="Test Files" |
| | | projectFiles="false" |
| | | kind="TEST_LOGICAL_FOLDER"> |
| | | <logicalFolder name="f3" |
| | | displayName="Test SCPI utils" |
| | | projectFiles="true" |
| | | kind="TEST"> |
| | | <itemPath>tests/test_scpi_utils.c</itemPath> |
| | | </logicalFolder> |
| | | </logicalFolder> |
| | | <logicalFolder name="ExternalFiles" |
| | | displayName="Important Files" |
| | | projectFiles="false" |
| | | kind="IMPORTANT_FILES_FOLDER"> |
| | | <itemPath>Makefile</itemPath> |
| | | </logicalFolder> |
| | | </logicalFolder> |
| | | <projectmakefile>Makefile</projectmakefile> |
| | | <confs> |
| | | <conf name="Debug" type="1"> |
| | | <toolsSet> |
| | | <remote-sources-mode>LOCAL_SOURCES</remote-sources-mode> |
| | | <compilerSet>default</compilerSet> |
| | | <rebuildPropChanged>true</rebuildPropChanged> |
| | | </toolsSet> |
| | | <compileType> |
| | | <cTool> |
| | | <developmentMode>0</developmentMode> |
| | | <incDir> |
| | | <pElem>.</pElem> |
| | | </incDir> |
| | | <commandLine>-Wextra -g3 -O0</commandLine> |
| | | <warningLevel>2</warningLevel> |
| | | </cTool> |
| | | <ccTool> |
| | | <incDir> |
| | | <pElem>.</pElem> |
| | | </incDir> |
| | | </ccTool> |
| | | <linkerTool> |
| | | <output>${TESTDIR}/TestFiles/f2</output> |
| | | <linkerLibItems> |
| | | <linkerLibStdlibItem>CUnit</linkerLibStdlibItem> |
| | | <linkerLibStdlibItem>CUnit</linkerLibStdlibItem> |
| | | </linkerLibItems> |
| | | <commandLine>-g3</commandLine> |
| | | </linkerTool> |
| | | </compileType> |
| | | <packaging> |
| | | <packType>Tar</packType> |
| | | <output>${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/scpi_parser.tar</output> |
| | | <packFileList> |
| | | <packFileListElem type="File" |
| | | to="${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" |
| | | from="${OUTPUT_PATH}" |
| | | perm="755" |
| | | owner="root" |
| | | group="bin"/> |
| | | </packFileList> |
| | | </packaging> |
| | | <folder path="TestFiles/f1"> |
| | | <cTool> |
| | | <incDir> |
| | | <pElem>.</pElem> |
| | | <pElem>.</pElem> |
| | | </incDir> |
| | | </cTool> |
| | | <ccTool> |
| | | <incDir> |
| | | <pElem>.</pElem> |
| | | <pElem>.</pElem> |
| | | </incDir> |
| | | </ccTool> |
| | | <linkerTool> |
| | | <output>${TESTDIR}/TestFiles/f1</output> |
| | | <linkerLibItems> |
| | | <linkerLibStdlibItem>CUnit</linkerLibStdlibItem> |
| | | </linkerLibItems> |
| | | </linkerTool> |
| | | </folder> |
| | | <folder path="TestFiles/f3"> |
| | | <cTool> |
| | | <incDir> |
| | | <pElem>.</pElem> |
| | | </incDir> |
| | | </cTool> |
| | | <ccTool> |
| | | <incDir> |
| | | <pElem>.</pElem> |
| | | </incDir> |
| | | </ccTool> |
| | | <linkerTool> |
| | | <output>${TESTDIR}/TestFiles/f3</output> |
| | | </linkerTool> |
| | | </folder> |
| | | </conf> |
| | | <conf name="Release" type="1"> |
| | | <toolsSet> |
| | | <remote-sources-mode>LOCAL_SOURCES</remote-sources-mode> |
| | | <compilerSet>default</compilerSet> |
| | | <rebuildPropChanged>true</rebuildPropChanged> |
| | | </toolsSet> |
| | | <compileType> |
| | | <cTool> |
| | | <developmentMode>5</developmentMode> |
| | | </cTool> |
| | | <ccTool> |
| | | <developmentMode>5</developmentMode> |
| | | </ccTool> |
| | | <fortranCompilerTool> |
| | | <developmentMode>5</developmentMode> |
| | | </fortranCompilerTool> |
| | | <asmTool> |
| | | <developmentMode>5</developmentMode> |
| | | </asmTool> |
| | | <linkerTool> |
| | | <output>${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/scpi_parser</output> |
| | | </linkerTool> |
| | | </compileType> |
| | | <packaging> |
| | | <packType>Tar</packType> |
| | | <output>${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/scpi_parser.tar</output> |
| | | <packFileList> |
| | | <packFileListElem type="File" |
| | | to="${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" |
| | | from="${OUTPUT_PATH}" |
| | | perm="755" |
| | | owner="root" |
| | | group="bin"/> |
| | | </packFileList> |
| | | </packaging> |
| | | </conf> |
| | | </confs> |
| | | </configurationDescriptor> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project xmlns="http://www.netbeans.org/ns/project/1"> |
| | | <type>org.netbeans.modules.cnd.makeproject</type> |
| | | <configuration> |
| | | <data xmlns="http://www.netbeans.org/ns/make-project/1"> |
| | | <name>scpi_parser</name> |
| | | <c-extensions>c</c-extensions> |
| | | <cpp-extensions/> |
| | | <header-extensions>h</header-extensions> |
| | | <sourceEncoding>UTF-8</sourceEncoding> |
| | | <make-dep-projects/> |
| | | <sourceRootList/> |
| | | <confList> |
| | | <confElem> |
| | | <name>Debug</name> |
| | | <type>1</type> |
| | | </confElem> |
| | | <confElem> |
| | | <name>Release</name> |
| | | <type>1</type> |
| | | </confElem> |
| | | </confList> |
| | | </data> |
| | | </configuration> |
| | | </project> |
New file |
| | |
| | | /* |
| | | * File: test_scpi_utils.c |
| | | * Author: Jan Breuer |
| | | * |
| | | * Created on 26.11.2012, 11:22:00 |
| | | */ |
| | | |
| | | #include <stdio.h> |
| | | #include <stdlib.h> |
| | | #include "CUnit/Basic.h" |
| | | |
| | | #include "../scpi/scpi.h" |
| | | #include "../scpi/scpi_utils.h" |
| | | |
| | | /* |
| | | * CUnit Test Suite |
| | | */ |
| | | |
| | | int init_suite(void) { |
| | | return 0; |
| | | } |
| | | |
| | | int clean_suite(void) { |
| | | return 0; |
| | | } |
| | | |
| | | void test_strnpbrk() { |
| | | char str[] = "ahoj"; |
| | | |
| | | CU_ASSERT(strnpbrk(str, 4, "a") == (str + 0)); |
| | | CU_ASSERT(strnpbrk(str, 4, "h") == (str + 1)); |
| | | CU_ASSERT(strnpbrk(str, 4, "b") == NULL); |
| | | CU_ASSERT(strnpbrk(str, 1, "h") == NULL); |
| | | CU_ASSERT(strnpbrk(str, 4, "xo") == (str + 2)); |
| | | } |
| | | |
| | | void test_longToStr() { |
| | | char str[32]; |
| | | size_t len; |
| | | |
| | | len = longToStr(10, str, 32); |
| | | CU_ASSERT(len == 2); |
| | | CU_ASSERT(str[0] == '1'); |
| | | CU_ASSERT(str[1] == '0'); |
| | | CU_ASSERT(str[2] == '\0'); |
| | | } |
| | | |
| | | void test_doubleToStr() { |
| | | size_t result; |
| | | char str[50]; |
| | | |
| | | #define TEST_DOUBLE_TO_STR(v, r, s) \ |
| | | do { \ |
| | | result = doubleToStr(v, str, sizeof(str)); \ |
| | | CU_ASSERT_EQUAL(result, r); \ |
| | | CU_ASSERT_STRING_EQUAL(str, s); \ |
| | | } while(0) \ |
| | | |
| | | |
| | | TEST_DOUBLE_TO_STR(1, 1, "1"); |
| | | TEST_DOUBLE_TO_STR(-1, 2, "-1"); |
| | | TEST_DOUBLE_TO_STR(1.1, 3, "1.1"); |
| | | TEST_DOUBLE_TO_STR(-1.1, 4, "-1.1"); |
| | | TEST_DOUBLE_TO_STR(1e3, 4, "1000"); |
| | | TEST_DOUBLE_TO_STR(1e30, 5, "1e+30"); |
| | | TEST_DOUBLE_TO_STR(-1.3e30, 8, "-1.3e+30"); |
| | | TEST_DOUBLE_TO_STR(-1.3e-30, 8, "-1.3e-30"); |
| | | } |
| | | |
| | | void test_strToLong() { |
| | | size_t result; |
| | | int32_t val; |
| | | |
| | | #define TEST_STR_TO_LONG(s, r, v) \ |
| | | do { \ |
| | | result = strToLong(s, &val); \ |
| | | CU_ASSERT_EQUAL(val, v); \ |
| | | CU_ASSERT_EQUAL(result, r); \ |
| | | } while(0) \ |
| | | |
| | | TEST_STR_TO_LONG("", 0, 0); |
| | | TEST_STR_TO_LONG("1", 1, 1); |
| | | TEST_STR_TO_LONG("10", 2, 10); |
| | | TEST_STR_TO_LONG("-50", 3, -50); |
| | | TEST_STR_TO_LONG("100MHz", 3, 100); |
| | | TEST_STR_TO_LONG("MHz", 0, 0); |
| | | TEST_STR_TO_LONG("1.4", 1, 1); |
| | | TEST_STR_TO_LONG(" 1", 2, 1); |
| | | TEST_STR_TO_LONG(" +100", 5, 100); // space and + |
| | | TEST_STR_TO_LONG("0xFF", 4, 255); // hexadecimal FF |
| | | TEST_STR_TO_LONG("077", 3, 63); // octal 77 |
| | | TEST_STR_TO_LONG("018", 2, 1); // octal 1, 8 is ignored |
| | | } |
| | | |
| | | void test_strToDouble() { |
| | | double val; |
| | | size_t result; |
| | | |
| | | #define TEST_STR_TO_DOUBLE(s, r, v) \ |
| | | do { \ |
| | | result = strToDouble(s, &val); \ |
| | | CU_ASSERT_EQUAL(result, r); \ |
| | | CU_ASSERT_DOUBLE_EQUAL(v, val, 0.000001); \ |
| | | } while(0); \ |
| | | |
| | | TEST_STR_TO_DOUBLE("", 0, 0.0); |
| | | |
| | | TEST_STR_TO_DOUBLE(" 1", 2, 1.0); |
| | | |
| | | TEST_STR_TO_DOUBLE("1", 1, 1.0); |
| | | TEST_STR_TO_DOUBLE("10", 2, 10.0); |
| | | TEST_STR_TO_DOUBLE("10MHz", 2, 10.0); |
| | | TEST_STR_TO_DOUBLE("MHz", 0, 0.0); |
| | | TEST_STR_TO_DOUBLE("1E", 1, 1.0); |
| | | TEST_STR_TO_DOUBLE("1E3", 3, 1000.0); |
| | | |
| | | TEST_STR_TO_DOUBLE("1.2", 3, 1.2); |
| | | TEST_STR_TO_DOUBLE("10.2", 4, 10.2); |
| | | TEST_STR_TO_DOUBLE("10.2MHz", 4, 10.2); |
| | | TEST_STR_TO_DOUBLE("MHz", 0, 0.0); |
| | | TEST_STR_TO_DOUBLE("1.2E", 3, 1.2); |
| | | TEST_STR_TO_DOUBLE("1.2E3", 5, 1200.0); |
| | | |
| | | TEST_STR_TO_DOUBLE("-1.2", 4, -1.2); |
| | | |
| | | } |
| | | |
| | | void test_compareStr() { |
| | | |
| | | CU_ASSERT_TRUE(compareStr("abcd", 1, "afgh", 1)); |
| | | CU_ASSERT_TRUE(compareStr("ABCD", 4, "abcd", 4)); |
| | | CU_ASSERT_TRUE(compareStr("AbCd", 3, "AbCE", 3)); |
| | | CU_ASSERT_TRUE(compareStr("ABCD", 1, "a", 1)); |
| | | |
| | | CU_ASSERT_FALSE(compareStr("abcd", 1, "efgh", 1)); |
| | | CU_ASSERT_FALSE(compareStr("ABCD", 4, "abcd", 3)); |
| | | } |
| | | |
| | | void test_locateStr() { |
| | | |
| | | char * v; |
| | | char * b; |
| | | size_t l; |
| | | int result; |
| | | |
| | | |
| | | #define TEST_LOCATE_STR(s, ex_res, ex_off, ex_len) \ |
| | | do { \ |
| | | v = (s); \ |
| | | b = NULL; \ |
| | | l = 0; \ |
| | | result = locateStr(v, strlen(v), &b, &l); \ |
| | | CU_ASSERT(result == ex_res); \ |
| | | if (result == TRUE) { \ |
| | | CU_ASSERT(b == (s + ex_off)); \ |
| | | CU_ASSERT(l == ex_len); \ |
| | | } else { \ |
| | | CU_ASSERT(b == NULL); \ |
| | | CU_ASSERT(l == 0); \ |
| | | } \ |
| | | } while(0) \ |
| | | |
| | | |
| | | TEST_LOCATE_STR("", TRUE, 0, 0); |
| | | TEST_LOCATE_STR(" ", TRUE, 3, 0); |
| | | TEST_LOCATE_STR("a", TRUE, 0, 1); |
| | | TEST_LOCATE_STR("ab", TRUE, 0, 2); |
| | | TEST_LOCATE_STR("abc", TRUE, 0, 3); |
| | | TEST_LOCATE_STR(" abc", TRUE, 1, 3); |
| | | TEST_LOCATE_STR(" abc def", TRUE, 1, 7); |
| | | TEST_LOCATE_STR(" abc def ", TRUE, 1, 7); |
| | | TEST_LOCATE_STR("\"\"", TRUE, 1, 0); |
| | | TEST_LOCATE_STR("\"a\"", TRUE, 1, 1); |
| | | TEST_LOCATE_STR(" \"a\" ", TRUE, 2, 1); |
| | | TEST_LOCATE_STR(" \"a\" ", TRUE, 2, 1); |
| | | TEST_LOCATE_STR(" \"a\" ,", TRUE, 2, 1); |
| | | TEST_LOCATE_STR(" \"a,b\"", TRUE, 2, 3); |
| | | TEST_LOCATE_STR(" \"a,b\" ,", TRUE, 2, 3); |
| | | TEST_LOCATE_STR(" a b ", TRUE, 1, 3); |
| | | TEST_LOCATE_STR(" a b ,", TRUE, 1, 3); |
| | | TEST_LOCATE_STR(" \"a \" ", TRUE, 2, 2); |
| | | TEST_LOCATE_STR(" \"a ", FALSE, 0, 0); |
| | | TEST_LOCATE_STR(" \"a\" a, a ", FALSE, 0, 0); |
| | | TEST_LOCATE_STR(" \"a\" , a ", TRUE, 2, 1); |
| | | } |
| | | |
| | | int main() { |
| | | CU_pSuite pSuite = NULL; |
| | | |
| | | /* Initialize the CUnit test registry */ |
| | | if (CUE_SUCCESS != CU_initialize_registry()) |
| | | return CU_get_error(); |
| | | |
| | | /* Add a suite to the registry */ |
| | | pSuite = CU_add_suite("SCPI Utils", init_suite, clean_suite); |
| | | if (NULL == pSuite) { |
| | | CU_cleanup_registry(); |
| | | return CU_get_error(); |
| | | } |
| | | |
| | | /* Add the tests to the suite */ |
| | | if (0 |
| | | || (NULL == CU_add_test(pSuite, "strnpbrk", test_strnpbrk)) |
| | | || (NULL == CU_add_test(pSuite, "longToStr", test_longToStr)) |
| | | || (NULL == CU_add_test(pSuite, "doubleToStr", test_doubleToStr)) |
| | | || (NULL == CU_add_test(pSuite, "strToLong", test_strToLong)) |
| | | || (NULL == CU_add_test(pSuite, "strToDouble", test_strToDouble)) |
| | | || (NULL == CU_add_test(pSuite, "compareStr", test_compareStr)) |
| | | || (NULL == CU_add_test(pSuite, "locateStr", test_locateStr)) |
| | | ) { |
| | | CU_cleanup_registry(); |
| | | return CU_get_error(); |
| | | } |
| | | |
| | | /* Run all tests using the CUnit Basic interface */ |
| | | CU_basic_set_mode(CU_BRM_VERBOSE); |
| | | CU_basic_run_tests(); |
| | | CU_cleanup_registry(); |
| | | return CU_get_error(); |
| | | } |
| | |
| | | static char * cmdlineTerminator(const char * cmd, size_t len); |
| | | static const char * cmdlineNext(const char * cmd, size_t len); |
| | | static bool_t cmdMatch(const char * pattern, const char * cmd, size_t len); |
| | | static size_t skipWhitespace(const char * cmd, size_t len); |
| | | |
| | | static void paramSkipBytes(scpi_context_t * context, size_t num); |
| | | static void paramSkipWhitespace(scpi_context_t * context); |
| | |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * Count white spaces from the beggining |
| | | * @param cmd - command |
| | | * @param len - max search length |
| | | * @return number of white spaces |
| | | */ |
| | | size_t skipWhitespace(const char * cmd, size_t len) { |
| | | size_t i; |
| | | for (i = 0; i < len; i++) { |
| | | if (!isspace(cmd[i])) { |
| | | return i; |
| | | } |
| | | } |
| | | return len; |
| | | } |
| | | |
| | | /** |
| | | * Write data to SCPI output |
| | |
| | | bool_t SCPI_ParamInt(scpi_context_t * context, int32_t * value, bool_t mandatory) { |
| | | size_t len; |
| | | |
| | | if (!value) { |
| | | return FALSE; |
| | | } |
| | | |
| | | if (!paramNext(context, mandatory)) { |
| | | return FALSE; |
| | | } |
| | | |
| | | len = strToLong(context->paramlist.parameters, value); |
| | | |
| | | |
| | | if (len == 0) { |
| | | if (mandatory) { |
| | | SCPI_ErrorPush(context, SCPI_ERROR_SYNTAX); |
| | |
| | | paramSkipBytes(context, len); |
| | | } |
| | | |
| | | paramSkipWhitespace(context); |
| | | if ((context->paramlist.length > 0) && (context->paramlist.parameters[0] != ',')) { |
| | | SCPI_ErrorPush(context, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | return FALSE; |
| | | } |
| | | |
| | | return TRUE; |
| | | } |
| | | |
| | |
| | | bool_t SCPI_ParamDouble(scpi_context_t * context, double * value, bool_t mandatory) { |
| | | size_t len; |
| | | |
| | | if (!value) { |
| | | return FALSE; |
| | | } |
| | | |
| | | if (!paramNext(context, mandatory)) { |
| | | return FALSE; |
| | | } |
| | | |
| | | len = strToDouble(context->paramlist.parameters, value); |
| | | |
| | | if (len == 0) { |
| | |
| | | paramSkipBytes(context, len); |
| | | } |
| | | |
| | | paramSkipWhitespace(context); |
| | | if ((context->paramlist.length > 0) && (context->paramlist.parameters[0] != ',')) { |
| | | SCPI_ErrorPush(context, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | return FALSE; |
| | | } |
| | | |
| | | return TRUE; |
| | | } |
| | | |
| | |
| | | * @return |
| | | */ |
| | | bool_t SCPI_ParamString(scpi_context_t * context, char ** value, size_t * len, bool_t mandatory) { |
| | | (void)context; |
| | | (void)value; |
| | | (void)len; |
| | | (void)mandatory; |
| | | size_t length; |
| | | |
| | | if (!value || !len) { |
| | | return FALSE; |
| | | } |
| | | |
| | | if (!paramNext(context, mandatory)) { |
| | | return FALSE; |
| | | } |
| | | |
| | | if (locateStr(context->paramlist.parameters, context->paramlist.length, value, &length)) { |
| | | paramSkipBytes(context, length); |
| | | if (len) { |
| | | *len = length; |
| | | } |
| | | return TRUE; |
| | | } |
| | | |
| | | return FALSE; |
| | | } |
| | |
| | | case SCPI_ERROR_UNDEFINED_HEADER: return "Undefined header"; |
| | | case SCPI_ERROR_PARAMETER_NOT_ALLOWED: return "Parameter not allowed"; |
| | | case SCPI_ERROR_MISSING_PARAMETER: return "Missing parameter"; |
| | | case SCPI_ERROR_INVALID_SUFFIX: return "Invalid suffix"; |
| | | case SCPI_ERROR_SUFFIX_NOT_ALLOWED: return "Suffix not allowed"; |
| | | default: return "Unknown error"; |
| | | } |
| | | } |
| | |
| | | #define SCPI_ERROR_UNDEFINED_HEADER -113 |
| | | #define SCPI_ERROR_PARAMETER_NOT_ALLOWED -108 |
| | | #define SCPI_ERROR_MISSING_PARAMETER -109 |
| | | #define SCPI_ERROR_INVALID_SUFFIX -131 |
| | | #define SCPI_ERROR_SUFFIX_NOT_ALLOWED -138 |
| | | |
| | | #ifdef __cplusplus |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * *CLS |
| | | * *CLS - This command clears all status data structures in a device. |
| | | * For a device which minimally complies with SCPI. (SCPI std 4.1.3.2) |
| | | * @param context |
| | | * @return |
| | | */ |
New file |
| | |
| | | /*- |
| | | * Copyright (c) 2012-2013 Jan Breuer, |
| | | * |
| | | * All Rights Reserved |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are |
| | | * met: |
| | | * 1. Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * 2. Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * |
| | | * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR |
| | | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| | | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| | | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE |
| | | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| | | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| | | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR |
| | | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| | | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE |
| | | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN |
| | | * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| | | */ |
| | | |
| | | /** |
| | | * @file scpi_units.c |
| | | * @date Thu Nov 15 10:58:45 UTC 2012 |
| | | * |
| | | * @brief SCPI units |
| | | * |
| | | * |
| | | */ |
| | | |
| | | #include <string.h> |
| | | #include "scpi.h" |
| | | #include "scpi_units.h" |
| | | #include "scpi_utils.h" |
| | | #include "scpi_error.h" |
| | | |
| | | |
| | | /* |
| | | * multipliers IEEE 488.2-1992 tab 7-2 |
| | | * 1E18 EX |
| | | * 1E15 PE |
| | | * 1E12 T |
| | | * 1E9 G |
| | | * 1E6 MA (use M for OHM and HZ) |
| | | * 1E3 K |
| | | * 1E-3 M (disaalowed for OHM and HZ) |
| | | * 1E-6 U |
| | | * 1E-9 N |
| | | * 1E-12 P |
| | | * 1E-15 F |
| | | * 1E-18 A |
| | | */ |
| | | |
| | | /* |
| | | * units definition IEEE 488.2-1992 tab 7-1 |
| | | */ |
| | | const scpi_unit_def_t scpi_units_def[] = { |
| | | /* voltage */ |
| | | { .name = "UV", .unit = SCPI_UNIT_VOLT, .mult = 1e-6}, |
| | | { .name = "MV", .unit = SCPI_UNIT_VOLT, .mult = 1e-3}, |
| | | { .name = "V", .unit = SCPI_UNIT_VOLT, .mult = 1}, |
| | | { .name = "KV", .unit = SCPI_UNIT_VOLT, .mult = 1e3}, |
| | | |
| | | /* current */ |
| | | { .name = "UA", .unit = SCPI_UNIT_AMPER, .mult = 1e-6}, |
| | | { .name = "MA", .unit = SCPI_UNIT_AMPER, .mult = 1e-3}, |
| | | { .name = "A", .unit = SCPI_UNIT_AMPER, .mult = 1}, |
| | | { .name = "KA", .unit = SCPI_UNIT_AMPER, .mult = 1e3}, |
| | | |
| | | /* resistance */ |
| | | { .name = "OHM", .unit = SCPI_UNIT_OHM, .mult = 1}, |
| | | { .name = "KOHM", .unit = SCPI_UNIT_OHM, .mult = 1e3}, |
| | | { .name = "MOHM", .unit = SCPI_UNIT_OHM, .mult = 1e6}, |
| | | |
| | | /* frequency */ |
| | | { .name = "HZ", .unit = SCPI_UNIT_HERTZ, .mult = 1}, |
| | | { .name = "KHZ", .unit = SCPI_UNIT_HERTZ, .mult = 1e3}, |
| | | { .name = "MHZ", .unit = SCPI_UNIT_HERTZ, .mult = 1e6}, |
| | | { .name = "GHZ", .unit = SCPI_UNIT_HERTZ, .mult = 1e9}, |
| | | |
| | | /* temperature */ |
| | | { .name = "CEL", .unit = SCPI_UNIT_CELSIUS, .mult = 1}, |
| | | |
| | | /* time */ |
| | | { .name = "PS", .unit = SCPI_UNIT_SECONDS, .mult = 1e-12}, |
| | | { .name = "NS", .unit = SCPI_UNIT_SECONDS, .mult = 1e-9}, |
| | | { .name = "US", .unit = SCPI_UNIT_SECONDS, .mult = 1e-6}, |
| | | { .name = "MS", .unit = SCPI_UNIT_SECONDS, .mult = 1e-3}, |
| | | { .name = "S", .unit = SCPI_UNIT_SECONDS, .mult = 1}, |
| | | { .name = "MIN", .unit = SCPI_UNIT_SECONDS, .mult = 60}, |
| | | { .name = "HR", .unit = SCPI_UNIT_SECONDS, .mult = 3600}, |
| | | |
| | | SCPI_UNITS_LIST_END, |
| | | }; |
| | | |
| | | |
| | | const scpi_special_number_def_t scpi_special_numbers_def[] = { |
| | | { .name = "MIN", .type = SCPI_NUM_MIN}, |
| | | { .name = "MINIMUM", .type = SCPI_NUM_MIN}, |
| | | { .name = "MAX", .type = SCPI_NUM_MAX}, |
| | | { .name = "MAXIMUM", .type = SCPI_NUM_MAX}, |
| | | { .name = "DEF", .type = SCPI_NUM_DEF}, |
| | | { .name = "DEFAULT", .type = SCPI_NUM_DEF}, |
| | | { .name = "NAN", .type = SCPI_NUM_NAN}, |
| | | { .name = "INF", .type = SCPI_NUM_INF}, |
| | | { .name = "NINF", .type = SCPI_NUM_NINF}, |
| | | SCPI_SPECIAL_NUMBERS_LIST_END, |
| | | }; |
| | | |
| | | static scpi_special_number_t translateSpecialNumber(const char * str, size_t len) { |
| | | int i; |
| | | |
| | | for (i = 0; scpi_special_numbers_def[i].name != NULL; i++) { |
| | | if (compareStr(str, len, scpi_special_numbers_def[i].name, strlen(scpi_special_numbers_def[i].name))) { |
| | | return scpi_special_numbers_def[i].type; |
| | | } |
| | | } |
| | | |
| | | return SCPI_NUM_NUMBER; |
| | | } |
| | | |
| | | static const scpi_unit_def_t * searchUnit(const char * unit, size_t len) { |
| | | int i; |
| | | for(i = 0; scpi_units_def[i].name != NULL; i++) { |
| | | if (compareStr(unit, len, scpi_units_def[i].name, strlen(scpi_units_def[i].name))) { |
| | | return &scpi_units_def[i]; |
| | | } |
| | | } |
| | | |
| | | return NULL; |
| | | } |
| | | |
| | | static bool_t transformNumber(const char * unit, size_t len, scpi_number_t * value) { |
| | | size_t s; |
| | | const scpi_unit_def_t * unitDef; |
| | | s = skipWhitespace(unit, len); |
| | | |
| | | if (s == len) { |
| | | value->unit = SCPI_UNIT_NONE; |
| | | return TRUE; |
| | | } |
| | | |
| | | unitDef = searchUnit(unit + s, len - s); |
| | | |
| | | if (unitDef == NULL) { |
| | | return FALSE; |
| | | } |
| | | |
| | | value->value *= unitDef->mult; |
| | | value->unit = unitDef->unit; |
| | | |
| | | return TRUE; |
| | | } |
| | | |
| | | /** |
| | | * Parse parameter as number, number with unit or special value (min, max, default, ...) |
| | | * @param context |
| | | * @param value return value |
| | | * @param mandatory if the parameter is mandatory |
| | | * @return |
| | | */ |
| | | bool_t SCPI_ParamNumber(scpi_context_t * context, scpi_number_t * value, bool_t mandatory) { |
| | | bool_t result; |
| | | char * param; |
| | | size_t len; |
| | | size_t numlen; |
| | | |
| | | result = SCPI_ParamString(context, ¶m, &len, mandatory); |
| | | |
| | | if (!result) { |
| | | return FALSE; |
| | | } |
| | | |
| | | if (!value) { |
| | | return FALSE; |
| | | } |
| | | |
| | | value->unit = SCPI_UNIT_NONE; |
| | | value->value = 0.0; |
| | | value->type = translateSpecialNumber(param, len); |
| | | |
| | | if (value->type != SCPI_NUM_NUMBER) { |
| | | // found special type |
| | | return TRUE; |
| | | } |
| | | |
| | | numlen = strToDouble(param, &value->value); |
| | | |
| | | if (numlen <= len) { |
| | | if (transformNumber(param + numlen, len - numlen, value)) { |
| | | return TRUE; |
| | | } else { |
| | | SCPI_ErrorPush(context, SCPI_ERROR_INVALID_SUFFIX); |
| | | } |
| | | } |
| | | return FALSE; |
| | | |
| | | } |
| | | |
New file |
| | |
| | | /*- |
| | | * Copyright (c) 2012-2013 Jan Breuer, |
| | | * |
| | | * All Rights Reserved |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are |
| | | * met: |
| | | * 1. Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * 2. Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * |
| | | * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR |
| | | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| | | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| | | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE |
| | | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| | | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| | | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR |
| | | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| | | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE |
| | | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN |
| | | * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| | | */ |
| | | |
| | | /** |
| | | * @file scpi_units.h |
| | | * @date Thu Nov 15 10:58:45 UTC 2012 |
| | | * |
| | | * @brief SCPI Units |
| | | * |
| | | * |
| | | */ |
| | | |
| | | #ifndef SCPI_UNITS_H |
| | | #define SCPI_UNITS_H |
| | | |
| | | #include "scpi.h" |
| | | |
| | | #ifdef __cplusplus |
| | | extern "C" { |
| | | #endif |
| | | |
| | | enum _scpi_unit_t { |
| | | SCPI_UNIT_NONE, |
| | | SCPI_UNIT_VOLT, |
| | | SCPI_UNIT_AMPER, |
| | | SCPI_UNIT_OHM, |
| | | SCPI_UNIT_HERTZ, |
| | | SCPI_UNIT_CELSIUS, |
| | | SCPI_UNIT_SECONDS, |
| | | }; |
| | | typedef enum _scpi_unit_t scpi_unit_t; |
| | | |
| | | struct _scpi_unit_def_t { |
| | | const char * name; |
| | | scpi_unit_t unit; |
| | | double mult; |
| | | }; |
| | | typedef struct _scpi_unit_def_t scpi_unit_def_t; |
| | | |
| | | #define SCPI_UNITS_LIST_END {.name = NULL, .unit = SCPI_UNIT_NONE, .mult = 0} |
| | | |
| | | enum _scpi_special_number_t { |
| | | SCPI_NUM_NUMBER, |
| | | SCPI_NUM_MIN, |
| | | SCPI_NUM_MAX, |
| | | SCPI_NUM_DEF, |
| | | SCPI_NUM_UP, |
| | | SCPI_NUM_DOWN, |
| | | SCPI_NUM_NAN, |
| | | SCPI_NUM_INF, |
| | | SCPI_NUM_NINF, |
| | | }; |
| | | typedef enum _scpi_special_number_t scpi_special_number_t; |
| | | |
| | | struct _scpi_special_number_def_t { |
| | | const char * name; |
| | | scpi_special_number_t type; |
| | | }; |
| | | typedef struct _scpi_special_number_def_t scpi_special_number_def_t; |
| | | |
| | | struct _scpi_number_t { |
| | | double value; |
| | | scpi_unit_t unit; |
| | | scpi_special_number_t type; |
| | | }; |
| | | typedef struct _scpi_number_t scpi_number_t; |
| | | |
| | | |
| | | #define SCPI_SPECIAL_NUMBERS_LIST_END {.name = NULL, .type = SCPI_NUM_NUMBER} |
| | | |
| | | |
| | | bool_t SCPI_ParamNumber(scpi_context_t * context, scpi_number_t * value, bool_t mandatory); |
| | | |
| | | |
| | | #ifdef __cplusplus |
| | | } |
| | | #endif |
| | | |
| | | #endif /* SCPI_UNITS_H */ |
| | | |
| | |
| | | #include <stdio.h> |
| | | #include <stdlib.h> |
| | | #include <string.h> |
| | | #include <ctype.h> |
| | | |
| | | /** |
| | | * Find the first occurrence in str of a character in set. |
| | |
| | | * @return |
| | | */ |
| | | char * strnpbrk(const char *str, size_t size, const char *set) { |
| | | const char *scanp; |
| | | long c, sc; |
| | | const char * strend = str + size; |
| | | |
| | | while ((strend != str) && ((c = *str++) != 0)) { |
| | | for (scanp = set; (sc = *scanp++) != '\0';) |
| | | if (sc == c) |
| | | return ((char *) (str - 1)); |
| | | } |
| | | return (NULL); |
| | | } |
| | | const char *scanp; |
| | | long c, sc; |
| | | const char * strend = str + size; |
| | | |
| | | while ((strend != str) && ((c = *str++) != 0)) { |
| | | for (scanp = set; (sc = *scanp++) != '\0';) |
| | | if (sc == c) |
| | | return ((char *) (str - 1)); |
| | | } |
| | | return (NULL); |
| | | } |
| | | |
| | | /** |
| | | * Converts signed 32b integer value to string |
| | |
| | | * @return number of bytes written to str (without '\0') |
| | | */ |
| | | size_t doubleToStr(double val, char * str, size_t len) { |
| | | return snprintf(str, len, "%lf", val); |
| | | return snprintf(str, len, "%lg", val); |
| | | } |
| | | |
| | | /** |
| | |
| | | size_t strToDouble(const char * str, double * val) { |
| | | char * endptr; |
| | | *val = strtod(str, &endptr); |
| | | return endptr - str; |
| | | return endptr - str; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | return FALSE; |
| | | } |
| | | |
| | | bool_t locateStr(const char * str1, size_t len1, char ** str2, size_t * len2) { |
| | | size_t i; |
| | | int quot = 0; |
| | | int32_t strStart = -1; |
| | | int32_t strStop = -1; |
| | | int valid = 0; |
| | | |
| | | |
| | | for (i = 0; i < len1; i++) { |
| | | if ((strStart < 0) && isspace(str1[i])) { |
| | | continue; |
| | | } |
| | | |
| | | if ((strStart < 0) && !quot && (str1[i] == '"')) { |
| | | quot = 1; |
| | | continue; |
| | | } |
| | | |
| | | if (strStart < 0) { |
| | | strStart = i; |
| | | } |
| | | |
| | | if ((strStop < 0) && quot && (str1[i] == '"')) { |
| | | strStop = i; |
| | | valid = 1; |
| | | continue; |
| | | } |
| | | |
| | | if ((strStop >= 0) && quot && (str1[i] == ',')) { |
| | | break; |
| | | } |
| | | |
| | | if ((strStop >= 0) && quot && !isspace(str1[i])) { |
| | | valid = 0; |
| | | } |
| | | |
| | | if (!quot && !isspace(str1[i]) && (str1[i] != ',')) { |
| | | strStop = i; |
| | | } |
| | | |
| | | if (isspace(str1[i])) { |
| | | continue; |
| | | } |
| | | |
| | | if ((strStop >= 0) && (str1[i] == ',')) { |
| | | valid = 1; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if ((i == len1) && !quot) { |
| | | valid = 1; |
| | | if (strStop < 0) { |
| | | strStop = i; |
| | | } else { |
| | | strStop++; |
| | | } |
| | | if (strStart < 0) { |
| | | strStart = i; |
| | | } |
| | | } else if (!quot) { |
| | | strStop++; |
| | | } |
| | | |
| | | |
| | | if (valid) { |
| | | if (str2) { |
| | | *str2 = (char *) &str1[strStart]; |
| | | } |
| | | |
| | | if (len2) { |
| | | *len2 = strStop - strStart; |
| | | } |
| | | } |
| | | |
| | | return valid; |
| | | } |
| | | |
| | | /** |
| | | * Count white spaces from the beggining |
| | | * @param cmd - command |
| | | * @param len - max search length |
| | | * @return number of white spaces |
| | | */ |
| | | size_t skipWhitespace(const char * cmd, size_t len) { |
| | | size_t i; |
| | | for (i = 0; i < len; i++) { |
| | | if (!isspace(cmd[i])) { |
| | | return i; |
| | | } |
| | | } |
| | | return len; |
| | | } |
| | |
| | | size_t longToStr(int32_t val, char * str, size_t len); |
| | | size_t doubleToStr(double val, char * str, size_t len); |
| | | size_t strToLong(const char * str, int32_t * val); |
| | | size_t strToDouble(const char * str, double * val); |
| | | |
| | | size_t strToDouble(const char * str, double * val); |
| | | bool_t locateStr(const char * str1, size_t len1, char ** str2, size_t * len2); |
| | | size_t skipWhitespace(const char * cmd, size_t len); |
| | | |
| | | #ifdef __cplusplus |
| | | } |
| | |
| | | } |
| | | |
| | | scpi_command_t scpi_commands[] = { |
| | | /* Required IEEE488.2 Common Commands (see SCPI Standard V1999.0 ch4.1.1) */ |
| | | /* IEEE Mandated Commands (SCPI std V1999.0 4.1.1) */ |
| | | { .pattern = "*CLS", .callback = SCPI_CoreCls,}, |
| | | { .pattern = "*ESE", .callback = SCPI_CoreEse,}, |
| | | { .pattern = "*ESE?", .callback = SCPI_CoreEseQ,}, |
| | |
| | | { .pattern = "*TST?", .callback = SCPI_CoreTstQ,}, |
| | | { .pattern = "*WAI", .callback = SCPI_CoreWai,}, |
| | | |
| | | /* Required SCPI commands (see SCPI Standard V1999.0 ch 4.2.1) */ |
| | | /* Required SCPI commands (SCPI std V1999.0 4.2.1) */ |
| | | {.pattern = "SYSTem:ERRor?", .callback = SCPI_SystemErrorNextQ,}, |
| | | {.pattern = "SYSTem:ERRor:NEXT?", .callback = SCPI_SystemErrorNextQ,}, |
| | | {.pattern = "SYSTem:VERSion?", .callback = SCPI_SystemVersionQ,}, |
| | |
| | | /* |
| | | * |
| | | */ |
| | | #include "scpi/scpi_utils.h" |
| | | int main(int argc, char** argv) { |
| | | (void) argc; |
| | | (void) argv; |
| | | int result; |
| | | |
| | | |
| | | //printf("%.*s %s\r\n", 3, "asdadasdasdasdas", "b"); |
| | | |
| | | SCPI_Init(&scpi_context, scpi_commands, &scpi_buffer, &scpi_interface); |