### Engine structure

When all required databases are loaded you should prepare the detection engine by calling `cl_engine_compile()`. In case of failure you should still free the memory allocated to the engine with `cl_engine_free()`:

    	int cl_engine_compile(struct cl_engine *engine);

In our example:

    	if((ret = cl_engine_compile(engine)) != CL_SUCCESS) {
    	    printf("cl_engine_compile() error: %s\n", cl_strerror(ret));
    	    cl_engine_free(engine);
    	    return 1;
    	}